package cn.lei.netty.herostory.msg;

public final class GameMsgProtocol {

  private GameMsgProtocol() {
  }

  public static void registerAllExtensions(
          com.google.protobuf.ExtensionRegistryLite registry) {
  }

  public static void registerAllExtensions(
          com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
            (com.google.protobuf.ExtensionRegistryLite) registry);
  }

  /**
   * <pre>
   * 消息代号
   * </pre>
   * <p>
   * Protobuf enum {@code msg.MsgCode}
   */
  public enum MsgCode
          implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * <code>USER_ENTRY_CMD = 0;</code>
     */
    USER_ENTRY_CMD(0),
    /**
     * <code>USER_ENTRY_RESULT = 1;</code>
     */
    USER_ENTRY_RESULT(1),
    /**
     * <code>WHO_ELSE_IS_HERE_CMD = 2;</code>
     */
    WHO_ELSE_IS_HERE_CMD(2),
    /**
     * <code>WHO_ELSE_IS_HERE_RESULT = 3;</code>
     */
    WHO_ELSE_IS_HERE_RESULT(3),
    /**
     * <code>USER_MOVE_TO_CMD = 4;</code>
     */
    USER_MOVE_TO_CMD(4),
    /**
     * <code>USER_MOVE_TO_RESULT = 5;</code>
     */
    USER_MOVE_TO_RESULT(5),
    /**
     * <code>USER_QUIT_RESULT = 6;</code>
     */
    USER_QUIT_RESULT(6),
    /**
     * <code>USER_STOP_CMD = 7;</code>
     */
    USER_STOP_CMD(7),
    /**
     * <code>USER_STOP_RESULT = 8;</code>
     */
    USER_STOP_RESULT(8),
    /**
     * <code>USER_ATTK_CMD = 9;</code>
     */
    USER_ATTK_CMD(9),
    /**
     * <code>USER_ATTK_RESULT = 10;</code>
     */
    USER_ATTK_RESULT(10),
    /**
     * <code>USER_SUBTRACT_HP_RESULT = 11;</code>
     */
    USER_SUBTRACT_HP_RESULT(11),
    /**
     * <code>USER_DIE_RESULT = 12;</code>
     */
    USER_DIE_RESULT(12),
    /**
     * <code>USER_LOGIN_CMD = 13;</code>
     */
    USER_LOGIN_CMD(13),
    /**
     * <code>USER_LOGIN_RESULT = 14;</code>
     */
    USER_LOGIN_RESULT(14),
    /**
     * <code>SELECT_HERO_CMD = 15;</code>
     */
    SELECT_HERO_CMD(15),
    /**
     * <code>SELECT_HERO_RESULT = 16;</code>
     */
    SELECT_HERO_RESULT(16),
    /**
     * <code>GET_RANK_CMD = 17;</code>
     */
    GET_RANK_CMD(17),
    /**
     * <code>GET_RANK_RESULT = 18;</code>
     */
    GET_RANK_RESULT(18),
    UNRECOGNIZED(-1),
    ;

    /**
     * <code>USER_ENTRY_CMD = 0;</code>
     */
    public static final int USER_ENTRY_CMD_VALUE = 0;
    /**
     * <code>USER_ENTRY_RESULT = 1;</code>
     */
    public static final int USER_ENTRY_RESULT_VALUE = 1;
    /**
     * <code>WHO_ELSE_IS_HERE_CMD = 2;</code>
     */
    public static final int WHO_ELSE_IS_HERE_CMD_VALUE = 2;
    /**
     * <code>WHO_ELSE_IS_HERE_RESULT = 3;</code>
     */
    public static final int WHO_ELSE_IS_HERE_RESULT_VALUE = 3;
    /**
     * <code>USER_MOVE_TO_CMD = 4;</code>
     */
    public static final int USER_MOVE_TO_CMD_VALUE = 4;
    /**
     * <code>USER_MOVE_TO_RESULT = 5;</code>
     */
    public static final int USER_MOVE_TO_RESULT_VALUE = 5;
    /**
     * <code>USER_QUIT_RESULT = 6;</code>
     */
    public static final int USER_QUIT_RESULT_VALUE = 6;
    /**
     * <code>USER_STOP_CMD = 7;</code>
     */
    public static final int USER_STOP_CMD_VALUE = 7;
    /**
     * <code>USER_STOP_RESULT = 8;</code>
     */
    public static final int USER_STOP_RESULT_VALUE = 8;
    /**
     * <code>USER_ATTK_CMD = 9;</code>
     */
    public static final int USER_ATTK_CMD_VALUE = 9;
    /**
     * <code>USER_ATTK_RESULT = 10;</code>
     */
    public static final int USER_ATTK_RESULT_VALUE = 10;
    /**
     * <code>USER_SUBTRACT_HP_RESULT = 11;</code>
     */
    public static final int USER_SUBTRACT_HP_RESULT_VALUE = 11;
    /**
     * <code>USER_DIE_RESULT = 12;</code>
     */
    public static final int USER_DIE_RESULT_VALUE = 12;
    /**
     * <code>USER_LOGIN_CMD = 13;</code>
     */
    public static final int USER_LOGIN_CMD_VALUE = 13;
    /**
     * <code>USER_LOGIN_RESULT = 14;</code>
     */
    public static final int USER_LOGIN_RESULT_VALUE = 14;
    /**
     * <code>SELECT_HERO_CMD = 15;</code>
     */
    public static final int SELECT_HERO_CMD_VALUE = 15;
    /**
     * <code>SELECT_HERO_RESULT = 16;</code>
     */
    public static final int SELECT_HERO_RESULT_VALUE = 16;
    /**
     * <code>GET_RANK_CMD = 17;</code>
     */
    public static final int GET_RANK_CMD_VALUE = 17;
    /**
     * <code>GET_RANK_RESULT = 18;</code>
     */
    public static final int GET_RANK_RESULT_VALUE = 18;


    public final int getNumber() {
      if (this == UNRECOGNIZED) {
        throw new java.lang.IllegalArgumentException(
                "Can't get the number of an unknown enum value.");
      }
      return value;
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     * @deprecated Use {@link #forNumber(int)} instead.
     */
    @java.lang.Deprecated
    public static MsgCode valueOf(int value) {
      return forNumber(value);
    }

    /**
     * @param value The numeric wire value of the corresponding enum entry.
     * @return The enum associated with the given numeric wire value.
     */
    public static MsgCode forNumber(int value) {
      switch (value) {
        case 0:
          return USER_ENTRY_CMD;
        case 1:
          return USER_ENTRY_RESULT;
        case 2:
          return WHO_ELSE_IS_HERE_CMD;
        case 3:
          return WHO_ELSE_IS_HERE_RESULT;
        case 4:
          return USER_MOVE_TO_CMD;
        case 5:
          return USER_MOVE_TO_RESULT;
        case 6:
          return USER_QUIT_RESULT;
        case 7:
          return USER_STOP_CMD;
        case 8:
          return USER_STOP_RESULT;
        case 9:
          return USER_ATTK_CMD;
        case 10:
          return USER_ATTK_RESULT;
        case 11:
          return USER_SUBTRACT_HP_RESULT;
        case 12:
          return USER_DIE_RESULT;
        case 13:
          return USER_LOGIN_CMD;
        case 14:
          return USER_LOGIN_RESULT;
        case 15:
          return SELECT_HERO_CMD;
        case 16:
          return SELECT_HERO_RESULT;
        case 17:
          return GET_RANK_CMD;
        case 18:
          return GET_RANK_RESULT;
        default:
          return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap<MsgCode>
    internalGetValueMap() {
      return internalValueMap;
    }

    private static final com.google.protobuf.Internal.EnumLiteMap<
            MsgCode> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap<MsgCode>() {
              public MsgCode findValueByNumber(int number) {
                return MsgCode.forNumber(number);
              }
            };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
    getValueDescriptor() {
      return getDescriptor().getValues().get(ordinal());
    }

    public final com.google.protobuf.Descriptors.EnumDescriptor
    getDescriptorForType() {
      return getDescriptor();
    }

    public static final com.google.protobuf.Descriptors.EnumDescriptor
    getDescriptor() {
      return cn.lei.netty.herostory.msg.GameMsgProtocol.getDescriptor().getEnumTypes().get(0);
    }

    private static final MsgCode[] VALUES = values();

    public static MsgCode valueOf(
            com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
                "EnumValueDescriptor is not for this type.");
      }
      if (desc.getIndex() == -1) {
        return UNRECOGNIZED;
      }
      return VALUES[desc.getIndex()];
    }

    private final int value;

    private MsgCode(int value) {
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:msg.MsgCode)
  }

  public interface UserEntryCmdOrBuilder extends
          // @@protoc_insertion_point(interface_extends:msg.UserEntryCmd)
          com.google.protobuf.MessageOrBuilder {
  }

  /**
   * <pre>
   *
   * 用户入场
   * /////////////////////////////////////////////////////////////////////
   * 指令
   * </pre>
   * <p>
   * Protobuf type {@code msg.UserEntryCmd}
   */
  public static final class UserEntryCmd extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:msg.UserEntryCmd)
          UserEntryCmdOrBuilder {
    private static final long serialVersionUID = 0L;

    // Use UserEntryCmd.newBuilder() to construct.
    private UserEntryCmd(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private UserEntryCmd() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
      return new UserEntryCmd();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }

    private UserEntryCmd(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(
                      input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
                e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor
    getDescriptor() {
      return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserEntryCmd_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    internalGetFieldAccessorTable() {
      return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserEntryCmd_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                      cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryCmd.class, cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryCmd.Builder.class);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
            throws java.io.IOException {
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryCmd)) {
        return super.equals(obj);
      }
      cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryCmd other = (cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryCmd) obj;

      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryCmd parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryCmd parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryCmd parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryCmd parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryCmd parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryCmd parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryCmd parseFrom(java.io.InputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryCmd parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryCmd parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryCmd parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryCmd parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryCmd parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryCmd prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }

    /**
     * <pre>
     *
     * 用户入场
     * /////////////////////////////////////////////////////////////////////
     * 指令
     * </pre>
     * <p>
     * Protobuf type {@code msg.UserEntryCmd}
     */
    public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:msg.UserEntryCmd)
            cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryCmdOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
      getDescriptor() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserEntryCmd_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserEntryCmd_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                        cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryCmd.class, cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryCmd.Builder.class);
      }

      // Construct using cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryCmd.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
              com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
      getDescriptorForType() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserEntryCmd_descriptor;
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryCmd getDefaultInstanceForType() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryCmd.getDefaultInstance();
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryCmd build() {
        cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryCmd result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryCmd buildPartial() {
        cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryCmd result = new cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryCmd(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }

      @java.lang.Override
      public Builder setField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
        return super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(
              com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(
              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryCmd) {
          return mergeFrom((cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryCmd) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryCmd other) {
        if (other == cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryCmd.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryCmd parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryCmd) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:msg.UserEntryCmd)
    }

    // @@protoc_insertion_point(class_scope:msg.UserEntryCmd)
    private static final cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryCmd DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryCmd();
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryCmd getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<UserEntryCmd>
            PARSER = new com.google.protobuf.AbstractParser<UserEntryCmd>() {
      @java.lang.Override
      public UserEntryCmd parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return new UserEntryCmd(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<UserEntryCmd> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<UserEntryCmd> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryCmd getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface UserEntryResultOrBuilder extends
          // @@protoc_insertion_point(interface_extends:msg.UserEntryResult)
          com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * 用户 Id
     * </pre>
     *
     * <code>uint32 userId = 1;</code>
     *
     * @return The userId.
     */
    int getUserId();

    /**
     * <pre>
     * 用户名称
     * </pre>
     *
     * <code>string userName = 2;</code>
     *
     * @return The userName.
     */
    java.lang.String getUserName();

    /**
     * <pre>
     * 用户名称
     * </pre>
     *
     * <code>string userName = 2;</code>
     *
     * @return The bytes for userName.
     */
    com.google.protobuf.ByteString
    getUserNameBytes();

    /**
     * <pre>
     * 英雄形象
     * </pre>
     *
     * <code>string heroAvatar = 3;</code>
     *
     * @return The heroAvatar.
     */
    java.lang.String getHeroAvatar();

    /**
     * <pre>
     * 英雄形象
     * </pre>
     *
     * <code>string heroAvatar = 3;</code>
     *
     * @return The bytes for heroAvatar.
     */
    com.google.protobuf.ByteString
    getHeroAvatarBytes();
  }

  /**
   * <pre>
   * 结果
   * </pre>
   * <p>
   * Protobuf type {@code msg.UserEntryResult}
   */
  public static final class UserEntryResult extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:msg.UserEntryResult)
          UserEntryResultOrBuilder {
    private static final long serialVersionUID = 0L;

    // Use UserEntryResult.newBuilder() to construct.
    private UserEntryResult(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private UserEntryResult() {
      userName_ = "";
      heroAvatar_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
      return new UserEntryResult();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }

    private UserEntryResult(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {

              userId_ = input.readUInt32();
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();

              userName_ = s;
              break;
            }
            case 26: {
              java.lang.String s = input.readStringRequireUtf8();

              heroAvatar_ = s;
              break;
            }
            default: {
              if (!parseUnknownField(
                      input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
                e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor
    getDescriptor() {
      return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserEntryResult_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    internalGetFieldAccessorTable() {
      return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserEntryResult_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                      cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryResult.class, cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryResult.Builder.class);
    }

    public static final int USERID_FIELD_NUMBER = 1;
    private int userId_;

    /**
     * <pre>
     * 用户 Id
     * </pre>
     *
     * <code>uint32 userId = 1;</code>
     *
     * @return The userId.
     */
    public int getUserId() {
      return userId_;
    }

    public static final int USERNAME_FIELD_NUMBER = 2;
    private volatile java.lang.Object userName_;

    /**
     * <pre>
     * 用户名称
     * </pre>
     *
     * <code>string userName = 2;</code>
     *
     * @return The userName.
     */
    public java.lang.String getUserName() {
      java.lang.Object ref = userName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        userName_ = s;
        return s;
      }
    }

    /**
     * <pre>
     * 用户名称
     * </pre>
     *
     * <code>string userName = 2;</code>
     *
     * @return The bytes for userName.
     */
    public com.google.protobuf.ByteString
    getUserNameBytes() {
      java.lang.Object ref = userName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
                com.google.protobuf.ByteString.copyFromUtf8(
                        (java.lang.String) ref);
        userName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HEROAVATAR_FIELD_NUMBER = 3;
    private volatile java.lang.Object heroAvatar_;

    /**
     * <pre>
     * 英雄形象
     * </pre>
     *
     * <code>string heroAvatar = 3;</code>
     *
     * @return The heroAvatar.
     */
    public java.lang.String getHeroAvatar() {
      java.lang.Object ref = heroAvatar_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        heroAvatar_ = s;
        return s;
      }
    }

    /**
     * <pre>
     * 英雄形象
     * </pre>
     *
     * <code>string heroAvatar = 3;</code>
     *
     * @return The bytes for heroAvatar.
     */
    public com.google.protobuf.ByteString
    getHeroAvatarBytes() {
      java.lang.Object ref = heroAvatar_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
                com.google.protobuf.ByteString.copyFromUtf8(
                        (java.lang.String) ref);
        heroAvatar_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
            throws java.io.IOException {
      if (userId_ != 0) {
        output.writeUInt32(1, userId_);
      }
      if (!getUserNameBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, userName_);
      }
      if (!getHeroAvatarBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, heroAvatar_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (userId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
                .computeUInt32Size(1, userId_);
      }
      if (!getUserNameBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, userName_);
      }
      if (!getHeroAvatarBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, heroAvatar_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryResult)) {
        return super.equals(obj);
      }
      cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryResult other = (cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryResult) obj;

      if (getUserId()
              != other.getUserId()) return false;
      if (!getUserName()
              .equals(other.getUserName())) return false;
      if (!getHeroAvatar()
              .equals(other.getHeroAvatar())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + USERID_FIELD_NUMBER;
      hash = (53 * hash) + getUserId();
      hash = (37 * hash) + USERNAME_FIELD_NUMBER;
      hash = (53 * hash) + getUserName().hashCode();
      hash = (37 * hash) + HEROAVATAR_FIELD_NUMBER;
      hash = (53 * hash) + getHeroAvatar().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryResult parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryResult parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryResult parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryResult parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryResult parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryResult parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryResult parseFrom(java.io.InputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryResult parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryResult parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryResult parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryResult parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryResult parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryResult prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }

    /**
     * <pre>
     * 结果
     * </pre>
     * <p>
     * Protobuf type {@code msg.UserEntryResult}
     */
    public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:msg.UserEntryResult)
            cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryResultOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
      getDescriptor() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserEntryResult_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserEntryResult_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                        cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryResult.class, cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryResult.Builder.class);
      }

      // Construct using cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryResult.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
              com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        userId_ = 0;

        userName_ = "";

        heroAvatar_ = "";

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
      getDescriptorForType() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserEntryResult_descriptor;
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryResult getDefaultInstanceForType() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryResult.getDefaultInstance();
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryResult build() {
        cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryResult result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryResult buildPartial() {
        cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryResult result = new cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryResult(this);
        result.userId_ = userId_;
        result.userName_ = userName_;
        result.heroAvatar_ = heroAvatar_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }

      @java.lang.Override
      public Builder setField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
        return super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(
              com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(
              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryResult) {
          return mergeFrom((cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryResult) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryResult other) {
        if (other == cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryResult.getDefaultInstance())
          return this;
        if (other.getUserId() != 0) {
          setUserId(other.getUserId());
        }
        if (!other.getUserName().isEmpty()) {
          userName_ = other.userName_;
          onChanged();
        }
        if (!other.getHeroAvatar().isEmpty()) {
          heroAvatar_ = other.heroAvatar_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryResult parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryResult) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int userId_;

      /**
       * <pre>
       * 用户 Id
       * </pre>
       *
       * <code>uint32 userId = 1;</code>
       *
       * @return The userId.
       */
      public int getUserId() {
        return userId_;
      }

      /**
       * <pre>
       * 用户 Id
       * </pre>
       *
       * <code>uint32 userId = 1;</code>
       *
       * @param value The userId to set.
       * @return This builder for chaining.
       */
      public Builder setUserId(int value) {

        userId_ = value;
        onChanged();
        return this;
      }

      /**
       * <pre>
       * 用户 Id
       * </pre>
       *
       * <code>uint32 userId = 1;</code>
       *
       * @return This builder for chaining.
       */
      public Builder clearUserId() {

        userId_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object userName_ = "";

      /**
       * <pre>
       * 用户名称
       * </pre>
       *
       * <code>string userName = 2;</code>
       *
       * @return The userName.
       */
      public java.lang.String getUserName() {
        java.lang.Object ref = userName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
                  (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          userName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }

      /**
       * <pre>
       * 用户名称
       * </pre>
       *
       * <code>string userName = 2;</code>
       *
       * @return The bytes for userName.
       */
      public com.google.protobuf.ByteString
      getUserNameBytes() {
        java.lang.Object ref = userName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
                  com.google.protobuf.ByteString.copyFromUtf8(
                          (java.lang.String) ref);
          userName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      /**
       * <pre>
       * 用户名称
       * </pre>
       *
       * <code>string userName = 2;</code>
       *
       * @param value The userName to set.
       * @return This builder for chaining.
       */
      public Builder setUserName(
              java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }

        userName_ = value;
        onChanged();
        return this;
      }

      /**
       * <pre>
       * 用户名称
       * </pre>
       *
       * <code>string userName = 2;</code>
       *
       * @return This builder for chaining.
       */
      public Builder clearUserName() {

        userName_ = getDefaultInstance().getUserName();
        onChanged();
        return this;
      }

      /**
       * <pre>
       * 用户名称
       * </pre>
       *
       * <code>string userName = 2;</code>
       *
       * @param value The bytes for userName to set.
       * @return This builder for chaining.
       */
      public Builder setUserNameBytes(
              com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        checkByteStringIsUtf8(value);

        userName_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object heroAvatar_ = "";

      /**
       * <pre>
       * 英雄形象
       * </pre>
       *
       * <code>string heroAvatar = 3;</code>
       *
       * @return The heroAvatar.
       */
      public java.lang.String getHeroAvatar() {
        java.lang.Object ref = heroAvatar_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
                  (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          heroAvatar_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }

      /**
       * <pre>
       * 英雄形象
       * </pre>
       *
       * <code>string heroAvatar = 3;</code>
       *
       * @return The bytes for heroAvatar.
       */
      public com.google.protobuf.ByteString
      getHeroAvatarBytes() {
        java.lang.Object ref = heroAvatar_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
                  com.google.protobuf.ByteString.copyFromUtf8(
                          (java.lang.String) ref);
          heroAvatar_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      /**
       * <pre>
       * 英雄形象
       * </pre>
       *
       * <code>string heroAvatar = 3;</code>
       *
       * @param value The heroAvatar to set.
       * @return This builder for chaining.
       */
      public Builder setHeroAvatar(
              java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }

        heroAvatar_ = value;
        onChanged();
        return this;
      }

      /**
       * <pre>
       * 英雄形象
       * </pre>
       *
       * <code>string heroAvatar = 3;</code>
       *
       * @return This builder for chaining.
       */
      public Builder clearHeroAvatar() {

        heroAvatar_ = getDefaultInstance().getHeroAvatar();
        onChanged();
        return this;
      }

      /**
       * <pre>
       * 英雄形象
       * </pre>
       *
       * <code>string heroAvatar = 3;</code>
       *
       * @param value The bytes for heroAvatar to set.
       * @return This builder for chaining.
       */
      public Builder setHeroAvatarBytes(
              com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        checkByteStringIsUtf8(value);

        heroAvatar_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:msg.UserEntryResult)
    }

    // @@protoc_insertion_point(class_scope:msg.UserEntryResult)
    private static final cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryResult DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryResult();
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryResult getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<UserEntryResult>
            PARSER = new com.google.protobuf.AbstractParser<UserEntryResult>() {
      @java.lang.Override
      public UserEntryResult parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return new UserEntryResult(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<UserEntryResult> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<UserEntryResult> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cn.lei.netty.herostory.msg.GameMsgProtocol.UserEntryResult getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface WhoElseIsHereCmdOrBuilder extends
          // @@protoc_insertion_point(interface_extends:msg.WhoElseIsHereCmd)
          com.google.protobuf.MessageOrBuilder {
  }

  /**
   * <pre>
   * 还有谁在场
   * /////////////////////////////////////////////////////////////////////
   * 指令
   * </pre>
   * <p>
   * Protobuf type {@code msg.WhoElseIsHereCmd}
   */
  public static final class WhoElseIsHereCmd extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:msg.WhoElseIsHereCmd)
          WhoElseIsHereCmdOrBuilder {
    private static final long serialVersionUID = 0L;

    // Use WhoElseIsHereCmd.newBuilder() to construct.
    private WhoElseIsHereCmd(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private WhoElseIsHereCmd() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
      return new WhoElseIsHereCmd();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }

    private WhoElseIsHereCmd(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(
                      input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
                e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor
    getDescriptor() {
      return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_WhoElseIsHereCmd_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    internalGetFieldAccessorTable() {
      return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_WhoElseIsHereCmd_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                      cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereCmd.class, cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereCmd.Builder.class);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
            throws java.io.IOException {
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereCmd)) {
        return super.equals(obj);
      }
      cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereCmd other = (cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereCmd) obj;

      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereCmd parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereCmd parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereCmd parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereCmd parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereCmd parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereCmd parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereCmd parseFrom(java.io.InputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereCmd parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereCmd parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereCmd parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereCmd parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereCmd parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereCmd prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }

    /**
     * <pre>
     * 还有谁在场
     * /////////////////////////////////////////////////////////////////////
     * 指令
     * </pre>
     * <p>
     * Protobuf type {@code msg.WhoElseIsHereCmd}
     */
    public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:msg.WhoElseIsHereCmd)
            cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereCmdOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
      getDescriptor() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_WhoElseIsHereCmd_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_WhoElseIsHereCmd_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                        cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereCmd.class, cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereCmd.Builder.class);
      }

      // Construct using cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereCmd.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
              com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
      getDescriptorForType() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_WhoElseIsHereCmd_descriptor;
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereCmd getDefaultInstanceForType() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereCmd.getDefaultInstance();
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereCmd build() {
        cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereCmd result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereCmd buildPartial() {
        cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereCmd result = new cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereCmd(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }

      @java.lang.Override
      public Builder setField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
        return super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(
              com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(
              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereCmd) {
          return mergeFrom((cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereCmd) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereCmd other) {
        if (other == cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereCmd.getDefaultInstance())
          return this;
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereCmd parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereCmd) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:msg.WhoElseIsHereCmd)
    }

    // @@protoc_insertion_point(class_scope:msg.WhoElseIsHereCmd)
    private static final cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereCmd DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereCmd();
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereCmd getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<WhoElseIsHereCmd>
            PARSER = new com.google.protobuf.AbstractParser<WhoElseIsHereCmd>() {
      @java.lang.Override
      public WhoElseIsHereCmd parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return new WhoElseIsHereCmd(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<WhoElseIsHereCmd> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<WhoElseIsHereCmd> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereCmd getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface WhoElseIsHereResultOrBuilder extends
          // @@protoc_insertion_point(interface_extends:msg.WhoElseIsHereResult)
          com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * 用户信息数组
     * </pre>
     *
     * <code>repeated .msg.WhoElseIsHereResult.UserInfo userInfo = 1;</code>
     */
    java.util.List<cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo>
    getUserInfoList();

    /**
     * <pre>
     * 用户信息数组
     * </pre>
     *
     * <code>repeated .msg.WhoElseIsHereResult.UserInfo userInfo = 1;</code>
     */
    cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo getUserInfo(int index);

    /**
     * <pre>
     * 用户信息数组
     * </pre>
     *
     * <code>repeated .msg.WhoElseIsHereResult.UserInfo userInfo = 1;</code>
     */
    int getUserInfoCount();

    /**
     * <pre>
     * 用户信息数组
     * </pre>
     *
     * <code>repeated .msg.WhoElseIsHereResult.UserInfo userInfo = 1;</code>
     */
    java.util.List<? extends cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfoOrBuilder>
    getUserInfoOrBuilderList();

    /**
     * <pre>
     * 用户信息数组
     * </pre>
     *
     * <code>repeated .msg.WhoElseIsHereResult.UserInfo userInfo = 1;</code>
     */
    cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfoOrBuilder getUserInfoOrBuilder(
            int index);
  }

  /**
   * <pre>
   * 结果
   * </pre>
   * <p>
   * Protobuf type {@code msg.WhoElseIsHereResult}
   */
  public static final class WhoElseIsHereResult extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:msg.WhoElseIsHereResult)
          WhoElseIsHereResultOrBuilder {
    private static final long serialVersionUID = 0L;

    // Use WhoElseIsHereResult.newBuilder() to construct.
    private WhoElseIsHereResult(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private WhoElseIsHereResult() {
      userInfo_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
      return new WhoElseIsHereResult();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }

    private WhoElseIsHereResult(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                userInfo_ = new java.util.ArrayList<cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo>();
                mutable_bitField0_ |= 0x00000001;
              }
              userInfo_.add(
                      input.readMessage(cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                      input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
                e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          userInfo_ = java.util.Collections.unmodifiableList(userInfo_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor
    getDescriptor() {
      return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_WhoElseIsHereResult_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    internalGetFieldAccessorTable() {
      return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_WhoElseIsHereResult_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                      cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.class, cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.Builder.class);
    }

    public interface UserInfoOrBuilder extends
            // @@protoc_insertion_point(interface_extends:msg.WhoElseIsHereResult.UserInfo)
            com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       * 用户 Id
       * </pre>
       *
       * <code>uint32 userId = 1;</code>
       *
       * @return The userId.
       */
      int getUserId();

      /**
       * <pre>
       * 用户名称
       * </pre>
       *
       * <code>string userName = 2;</code>
       *
       * @return The userName.
       */
      java.lang.String getUserName();

      /**
       * <pre>
       * 用户名称
       * </pre>
       *
       * <code>string userName = 2;</code>
       *
       * @return The bytes for userName.
       */
      com.google.protobuf.ByteString
      getUserNameBytes();

      /**
       * <pre>
       * 英雄形象
       * </pre>
       *
       * <code>string heroAvatar = 3;</code>
       *
       * @return The heroAvatar.
       */
      java.lang.String getHeroAvatar();

      /**
       * <pre>
       * 英雄形象
       * </pre>
       *
       * <code>string heroAvatar = 3;</code>
       *
       * @return The bytes for heroAvatar.
       */
      com.google.protobuf.ByteString
      getHeroAvatarBytes();

      /**
       * <pre>
       * 移动状态
       * </pre>
       *
       * <code>.msg.WhoElseIsHereResult.UserInfo.MoveState moveState = 4;</code>
       *
       * @return Whether the moveState field is set.
       */
      boolean hasMoveState();

      /**
       * <pre>
       * 移动状态
       * </pre>
       *
       * <code>.msg.WhoElseIsHereResult.UserInfo.MoveState moveState = 4;</code>
       *
       * @return The moveState.
       */
      cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState getMoveState();

      /**
       * <pre>
       * 移动状态
       * </pre>
       *
       * <code>.msg.WhoElseIsHereResult.UserInfo.MoveState moveState = 4;</code>
       */
      cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveStateOrBuilder getMoveStateOrBuilder();
    }

    /**
     * <pre>
     * 用户信息
     * </pre>
     * <p>
     * Protobuf type {@code msg.WhoElseIsHereResult.UserInfo}
     */
    public static final class UserInfo extends
            com.google.protobuf.GeneratedMessageV3 implements
            // @@protoc_insertion_point(message_implements:msg.WhoElseIsHereResult.UserInfo)
            UserInfoOrBuilder {
      private static final long serialVersionUID = 0L;

      // Use UserInfo.newBuilder() to construct.
      private UserInfo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }

      private UserInfo() {
        userName_ = "";
        heroAvatar_ = "";
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
              UnusedPrivateParameter unused) {
        return new UserInfo();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }

      private UserInfo(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
                com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {

                userId_ = input.readUInt32();
                break;
              }
              case 18: {
                java.lang.String s = input.readStringRequireUtf8();

                userName_ = s;
                break;
              }
              case 26: {
                java.lang.String s = input.readStringRequireUtf8();

                heroAvatar_ = s;
                break;
              }
              case 34: {
                cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState.Builder subBuilder = null;
                if (moveState_ != null) {
                  subBuilder = moveState_.toBuilder();
                }
                moveState_ = input.readMessage(cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(moveState_);
                  moveState_ = subBuilder.buildPartial();
                }

                break;
              }
              default: {
                if (!parseUnknownField(
                        input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
                  e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }

      public static final com.google.protobuf.Descriptors.Descriptor
      getDescriptor() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_WhoElseIsHereResult_UserInfo_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_WhoElseIsHereResult_UserInfo_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                        cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.class, cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.Builder.class);
      }

      public interface MoveStateOrBuilder extends
              // @@protoc_insertion_point(interface_extends:msg.WhoElseIsHereResult.UserInfo.MoveState)
              com.google.protobuf.MessageOrBuilder {

        /**
         * <pre>
         * 起始位置 X
         * </pre>
         *
         * <code>float fromPosX = 1;</code>
         *
         * @return The fromPosX.
         */
        float getFromPosX();

        /**
         * <pre>
         * 起始位置 Y
         * </pre>
         *
         * <code>float fromPosY = 2;</code>
         *
         * @return The fromPosY.
         */
        float getFromPosY();

        /**
         * <pre>
         * 移动到位置 X
         * </pre>
         *
         * <code>float toPosX = 3;</code>
         *
         * @return The toPosX.
         */
        float getToPosX();

        /**
         * <pre>
         * 移动到位置 Y
         * </pre>
         *
         * <code>float toPosY = 4;</code>
         *
         * @return The toPosY.
         */
        float getToPosY();

        /**
         * <pre>
         * 启程时间戳
         * </pre>
         *
         * <code>uint64 startTime = 5;</code>
         *
         * @return The startTime.
         */
        long getStartTime();
      }

      /**
       * <pre>
       * 移动状态
       * </pre>
       * <p>
       * Protobuf type {@code msg.WhoElseIsHereResult.UserInfo.MoveState}
       */
      public static final class MoveState extends
              com.google.protobuf.GeneratedMessageV3 implements
              // @@protoc_insertion_point(message_implements:msg.WhoElseIsHereResult.UserInfo.MoveState)
              MoveStateOrBuilder {
        private static final long serialVersionUID = 0L;

        // Use MoveState.newBuilder() to construct.
        private MoveState(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
          super(builder);
        }

        private MoveState() {
        }

        @java.lang.Override
        @SuppressWarnings({"unused"})
        protected java.lang.Object newInstance(
                UnusedPrivateParameter unused) {
          return new MoveState();
        }

        @java.lang.Override
        public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
          return this.unknownFields;
        }

        private MoveState(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
          this();
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
                  com.google.protobuf.UnknownFieldSet.newBuilder();
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 13: {

                  fromPosX_ = input.readFloat();
                  break;
                }
                case 21: {

                  fromPosY_ = input.readFloat();
                  break;
                }
                case 29: {

                  toPosX_ = input.readFloat();
                  break;
                }
                case 37: {

                  toPosY_ = input.readFloat();
                  break;
                }
                case 40: {

                  startTime_ = input.readUInt64();
                  break;
                }
                default: {
                  if (!parseUnknownField(
                          input, unknownFields, extensionRegistry, tag)) {
                    done = true;
                  }
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(this);
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(
                    e).setUnfinishedMessage(this);
          } finally {
            this.unknownFields = unknownFields.build();
            makeExtensionsImmutable();
          }
        }

        public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
          return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_WhoElseIsHereResult_UserInfo_MoveState_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
          return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_WhoElseIsHereResult_UserInfo_MoveState_fieldAccessorTable
                  .ensureFieldAccessorsInitialized(
                          cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState.class, cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState.Builder.class);
        }

        public static final int FROMPOSX_FIELD_NUMBER = 1;
        private float fromPosX_;

        /**
         * <pre>
         * 起始位置 X
         * </pre>
         *
         * <code>float fromPosX = 1;</code>
         *
         * @return The fromPosX.
         */
        public float getFromPosX() {
          return fromPosX_;
        }

        public static final int FROMPOSY_FIELD_NUMBER = 2;
        private float fromPosY_;

        /**
         * <pre>
         * 起始位置 Y
         * </pre>
         *
         * <code>float fromPosY = 2;</code>
         *
         * @return The fromPosY.
         */
        public float getFromPosY() {
          return fromPosY_;
        }

        public static final int TOPOSX_FIELD_NUMBER = 3;
        private float toPosX_;

        /**
         * <pre>
         * 移动到位置 X
         * </pre>
         *
         * <code>float toPosX = 3;</code>
         *
         * @return The toPosX.
         */
        public float getToPosX() {
          return toPosX_;
        }

        public static final int TOPOSY_FIELD_NUMBER = 4;
        private float toPosY_;

        /**
         * <pre>
         * 移动到位置 Y
         * </pre>
         *
         * <code>float toPosY = 4;</code>
         *
         * @return The toPosY.
         */
        public float getToPosY() {
          return toPosY_;
        }

        public static final int STARTTIME_FIELD_NUMBER = 5;
        private long startTime_;

        /**
         * <pre>
         * 启程时间戳
         * </pre>
         *
         * <code>uint64 startTime = 5;</code>
         *
         * @return The startTime.
         */
        public long getStartTime() {
          return startTime_;
        }

        private byte memoizedIsInitialized = -1;

        @java.lang.Override
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return true;
          if (isInitialized == 0) return false;

          memoizedIsInitialized = 1;
          return true;
        }

        @java.lang.Override
        public void writeTo(com.google.protobuf.CodedOutputStream output)
                throws java.io.IOException {
          if (fromPosX_ != 0F) {
            output.writeFloat(1, fromPosX_);
          }
          if (fromPosY_ != 0F) {
            output.writeFloat(2, fromPosY_);
          }
          if (toPosX_ != 0F) {
            output.writeFloat(3, toPosX_);
          }
          if (toPosY_ != 0F) {
            output.writeFloat(4, toPosY_);
          }
          if (startTime_ != 0L) {
            output.writeUInt64(5, startTime_);
          }
          unknownFields.writeTo(output);
        }

        @java.lang.Override
        public int getSerializedSize() {
          int size = memoizedSize;
          if (size != -1) return size;

          size = 0;
          if (fromPosX_ != 0F) {
            size += com.google.protobuf.CodedOutputStream
                    .computeFloatSize(1, fromPosX_);
          }
          if (fromPosY_ != 0F) {
            size += com.google.protobuf.CodedOutputStream
                    .computeFloatSize(2, fromPosY_);
          }
          if (toPosX_ != 0F) {
            size += com.google.protobuf.CodedOutputStream
                    .computeFloatSize(3, toPosX_);
          }
          if (toPosY_ != 0F) {
            size += com.google.protobuf.CodedOutputStream
                    .computeFloatSize(4, toPosY_);
          }
          if (startTime_ != 0L) {
            size += com.google.protobuf.CodedOutputStream
                    .computeUInt64Size(5, startTime_);
          }
          size += unknownFields.getSerializedSize();
          memoizedSize = size;
          return size;
        }

        @java.lang.Override
        public boolean equals(final java.lang.Object obj) {
          if (obj == this) {
            return true;
          }
          if (!(obj instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState)) {
            return super.equals(obj);
          }
          cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState other = (cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState) obj;

          if (java.lang.Float.floatToIntBits(getFromPosX())
                  != java.lang.Float.floatToIntBits(
                  other.getFromPosX())) return false;
          if (java.lang.Float.floatToIntBits(getFromPosY())
                  != java.lang.Float.floatToIntBits(
                  other.getFromPosY())) return false;
          if (java.lang.Float.floatToIntBits(getToPosX())
                  != java.lang.Float.floatToIntBits(
                  other.getToPosX())) return false;
          if (java.lang.Float.floatToIntBits(getToPosY())
                  != java.lang.Float.floatToIntBits(
                  other.getToPosY())) return false;
          if (getStartTime()
                  != other.getStartTime()) return false;
          if (!unknownFields.equals(other.unknownFields)) return false;
          return true;
        }

        @java.lang.Override
        public int hashCode() {
          if (memoizedHashCode != 0) {
            return memoizedHashCode;
          }
          int hash = 41;
          hash = (19 * hash) + getDescriptor().hashCode();
          hash = (37 * hash) + FROMPOSX_FIELD_NUMBER;
          hash = (53 * hash) + java.lang.Float.floatToIntBits(
                  getFromPosX());
          hash = (37 * hash) + FROMPOSY_FIELD_NUMBER;
          hash = (53 * hash) + java.lang.Float.floatToIntBits(
                  getFromPosY());
          hash = (37 * hash) + TOPOSX_FIELD_NUMBER;
          hash = (53 * hash) + java.lang.Float.floatToIntBits(
                  getToPosX());
          hash = (37 * hash) + TOPOSY_FIELD_NUMBER;
          hash = (53 * hash) + java.lang.Float.floatToIntBits(
                  getToPosY());
          hash = (37 * hash) + STARTTIME_FIELD_NUMBER;
          hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
                  getStartTime());
          hash = (29 * hash) + unknownFields.hashCode();
          memoizedHashCode = hash;
          return hash;
        }

        public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState parseFrom(
                java.nio.ByteBuffer data)
                throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }

        public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState parseFrom(
                java.nio.ByteBuffer data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }

        public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState parseFrom(
                com.google.protobuf.ByteString data)
                throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }

        public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState parseFrom(
                com.google.protobuf.ByteString data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }

        public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState parseFrom(byte[] data)
                throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }

        public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState parseFrom(
                byte[] data,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }

        public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState parseFrom(java.io.InputStream input)
                throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
                  .parseWithIOException(PARSER, input);
        }

        public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState parseFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
                  .parseWithIOException(PARSER, input, extensionRegistry);
        }

        public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState parseDelimitedFrom(java.io.InputStream input)
                throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
                  .parseDelimitedWithIOException(PARSER, input);
        }

        public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState parseDelimitedFrom(
                java.io.InputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
                  .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }

        public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState parseFrom(
                com.google.protobuf.CodedInputStream input)
                throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
                  .parseWithIOException(PARSER, input);
        }

        public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState parseFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
          return com.google.protobuf.GeneratedMessageV3
                  .parseWithIOException(PARSER, input, extensionRegistry);
        }

        @java.lang.Override
        public Builder newBuilderForType() {
          return newBuilder();
        }

        public static Builder newBuilder() {
          return DEFAULT_INSTANCE.toBuilder();
        }

        public static Builder newBuilder(cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState prototype) {
          return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }

        @java.lang.Override
        public Builder toBuilder() {
          return this == DEFAULT_INSTANCE
                  ? new Builder() : new Builder().mergeFrom(this);
        }

        @java.lang.Override
        protected Builder newBuilderForType(
                com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }

        /**
         * <pre>
         * 移动状态
         * </pre>
         * <p>
         * Protobuf type {@code msg.WhoElseIsHereResult.UserInfo.MoveState}
         */
        public static final class Builder extends
                com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
                // @@protoc_insertion_point(builder_implements:msg.WhoElseIsHereResult.UserInfo.MoveState)
                cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveStateOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
            return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_WhoElseIsHereResult_UserInfo_MoveState_descriptor;
          }

          @java.lang.Override
          protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
            return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_WhoElseIsHereResult_UserInfo_MoveState_fieldAccessorTable
                    .ensureFieldAccessorsInitialized(
                            cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState.class, cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState.Builder.class);
          }

          // Construct using cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }

          private Builder(
                  com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }

          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessageV3
                    .alwaysUseFieldBuilders) {
            }
          }

          @java.lang.Override
          public Builder clear() {
            super.clear();
            fromPosX_ = 0F;

            fromPosY_ = 0F;

            toPosX_ = 0F;

            toPosY_ = 0F;

            startTime_ = 0L;

            return this;
          }

          @java.lang.Override
          public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
            return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_WhoElseIsHereResult_UserInfo_MoveState_descriptor;
          }

          @java.lang.Override
          public cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState getDefaultInstanceForType() {
            return cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState.getDefaultInstance();
          }

          @java.lang.Override
          public cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState build() {
            cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }

          @java.lang.Override
          public cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState buildPartial() {
            cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState result = new cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState(this);
            result.fromPosX_ = fromPosX_;
            result.fromPosY_ = fromPosY_;
            result.toPosX_ = toPosX_;
            result.toPosY_ = toPosY_;
            result.startTime_ = startTime_;
            onBuilt();
            return result;
          }

          @java.lang.Override
          public Builder clone() {
            return super.clone();
          }

          @java.lang.Override
          public Builder setField(
                  com.google.protobuf.Descriptors.FieldDescriptor field,
                  java.lang.Object value) {
            return super.setField(field, value);
          }

          @java.lang.Override
          public Builder clearField(
                  com.google.protobuf.Descriptors.FieldDescriptor field) {
            return super.clearField(field);
          }

          @java.lang.Override
          public Builder clearOneof(
                  com.google.protobuf.Descriptors.OneofDescriptor oneof) {
            return super.clearOneof(oneof);
          }

          @java.lang.Override
          public Builder setRepeatedField(
                  com.google.protobuf.Descriptors.FieldDescriptor field,
                  int index, java.lang.Object value) {
            return super.setRepeatedField(field, index, value);
          }

          @java.lang.Override
          public Builder addRepeatedField(
                  com.google.protobuf.Descriptors.FieldDescriptor field,
                  java.lang.Object value) {
            return super.addRepeatedField(field, value);
          }

          @java.lang.Override
          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState) {
              return mergeFrom((cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState) other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }

          public Builder mergeFrom(cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState other) {
            if (other == cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState.getDefaultInstance())
              return this;
            if (other.getFromPosX() != 0F) {
              setFromPosX(other.getFromPosX());
            }
            if (other.getFromPosY() != 0F) {
              setFromPosY(other.getFromPosY());
            }
            if (other.getToPosX() != 0F) {
              setToPosX(other.getToPosX());
            }
            if (other.getToPosY() != 0F) {
              setToPosY(other.getToPosY());
            }
            if (other.getStartTime() != 0L) {
              setStartTime(other.getStartTime());
            }
            this.mergeUnknownFields(other.unknownFields);
            onChanged();
            return this;
          }

          @java.lang.Override
          public final boolean isInitialized() {
            return true;
          }

          @java.lang.Override
          public Builder mergeFrom(
                  com.google.protobuf.CodedInputStream input,
                  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                  throws java.io.IOException {
            cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState parsedMessage = null;
            try {
              parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              parsedMessage = (cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState) e.getUnfinishedMessage();
              throw e.unwrapIOException();
            } finally {
              if (parsedMessage != null) {
                mergeFrom(parsedMessage);
              }
            }
            return this;
          }

          private float fromPosX_;

          /**
           * <pre>
           * 起始位置 X
           * </pre>
           *
           * <code>float fromPosX = 1;</code>
           *
           * @return The fromPosX.
           */
          public float getFromPosX() {
            return fromPosX_;
          }

          /**
           * <pre>
           * 起始位置 X
           * </pre>
           *
           * <code>float fromPosX = 1;</code>
           *
           * @param value The fromPosX to set.
           * @return This builder for chaining.
           */
          public Builder setFromPosX(float value) {

            fromPosX_ = value;
            onChanged();
            return this;
          }

          /**
           * <pre>
           * 起始位置 X
           * </pre>
           *
           * <code>float fromPosX = 1;</code>
           *
           * @return This builder for chaining.
           */
          public Builder clearFromPosX() {

            fromPosX_ = 0F;
            onChanged();
            return this;
          }

          private float fromPosY_;

          /**
           * <pre>
           * 起始位置 Y
           * </pre>
           *
           * <code>float fromPosY = 2;</code>
           *
           * @return The fromPosY.
           */
          public float getFromPosY() {
            return fromPosY_;
          }

          /**
           * <pre>
           * 起始位置 Y
           * </pre>
           *
           * <code>float fromPosY = 2;</code>
           *
           * @param value The fromPosY to set.
           * @return This builder for chaining.
           */
          public Builder setFromPosY(float value) {

            fromPosY_ = value;
            onChanged();
            return this;
          }

          /**
           * <pre>
           * 起始位置 Y
           * </pre>
           *
           * <code>float fromPosY = 2;</code>
           *
           * @return This builder for chaining.
           */
          public Builder clearFromPosY() {

            fromPosY_ = 0F;
            onChanged();
            return this;
          }

          private float toPosX_;

          /**
           * <pre>
           * 移动到位置 X
           * </pre>
           *
           * <code>float toPosX = 3;</code>
           *
           * @return The toPosX.
           */
          public float getToPosX() {
            return toPosX_;
          }

          /**
           * <pre>
           * 移动到位置 X
           * </pre>
           *
           * <code>float toPosX = 3;</code>
           *
           * @param value The toPosX to set.
           * @return This builder for chaining.
           */
          public Builder setToPosX(float value) {

            toPosX_ = value;
            onChanged();
            return this;
          }

          /**
           * <pre>
           * 移动到位置 X
           * </pre>
           *
           * <code>float toPosX = 3;</code>
           *
           * @return This builder for chaining.
           */
          public Builder clearToPosX() {

            toPosX_ = 0F;
            onChanged();
            return this;
          }

          private float toPosY_;

          /**
           * <pre>
           * 移动到位置 Y
           * </pre>
           *
           * <code>float toPosY = 4;</code>
           *
           * @return The toPosY.
           */
          public float getToPosY() {
            return toPosY_;
          }

          /**
           * <pre>
           * 移动到位置 Y
           * </pre>
           *
           * <code>float toPosY = 4;</code>
           *
           * @param value The toPosY to set.
           * @return This builder for chaining.
           */
          public Builder setToPosY(float value) {

            toPosY_ = value;
            onChanged();
            return this;
          }

          /**
           * <pre>
           * 移动到位置 Y
           * </pre>
           *
           * <code>float toPosY = 4;</code>
           *
           * @return This builder for chaining.
           */
          public Builder clearToPosY() {

            toPosY_ = 0F;
            onChanged();
            return this;
          }

          private long startTime_;

          /**
           * <pre>
           * 启程时间戳
           * </pre>
           *
           * <code>uint64 startTime = 5;</code>
           *
           * @return The startTime.
           */
          public long getStartTime() {
            return startTime_;
          }

          /**
           * <pre>
           * 启程时间戳
           * </pre>
           *
           * <code>uint64 startTime = 5;</code>
           *
           * @param value The startTime to set.
           * @return This builder for chaining.
           */
          public Builder setStartTime(long value) {

            startTime_ = value;
            onChanged();
            return this;
          }

          /**
           * <pre>
           * 启程时间戳
           * </pre>
           *
           * <code>uint64 startTime = 5;</code>
           *
           * @return This builder for chaining.
           */
          public Builder clearStartTime() {

            startTime_ = 0L;
            onChanged();
            return this;
          }

          @java.lang.Override
          public final Builder setUnknownFields(
                  final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.setUnknownFields(unknownFields);
          }

          @java.lang.Override
          public final Builder mergeUnknownFields(
                  final com.google.protobuf.UnknownFieldSet unknownFields) {
            return super.mergeUnknownFields(unknownFields);
          }


          // @@protoc_insertion_point(builder_scope:msg.WhoElseIsHereResult.UserInfo.MoveState)
        }

        // @@protoc_insertion_point(class_scope:msg.WhoElseIsHereResult.UserInfo.MoveState)
        private static final cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState DEFAULT_INSTANCE;

        static {
          DEFAULT_INSTANCE = new cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState();
        }

        public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState getDefaultInstance() {
          return DEFAULT_INSTANCE;
        }

        private static final com.google.protobuf.Parser<MoveState>
                PARSER = new com.google.protobuf.AbstractParser<MoveState>() {
          @java.lang.Override
          public MoveState parsePartialFrom(
                  com.google.protobuf.CodedInputStream input,
                  com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                  throws com.google.protobuf.InvalidProtocolBufferException {
            return new MoveState(input, extensionRegistry);
          }
        };

        public static com.google.protobuf.Parser<MoveState> parser() {
          return PARSER;
        }

        @java.lang.Override
        public com.google.protobuf.Parser<MoveState> getParserForType() {
          return PARSER;
        }

        @java.lang.Override
        public cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState getDefaultInstanceForType() {
          return DEFAULT_INSTANCE;
        }

      }

      public static final int USERID_FIELD_NUMBER = 1;
      private int userId_;

      /**
       * <pre>
       * 用户 Id
       * </pre>
       *
       * <code>uint32 userId = 1;</code>
       *
       * @return The userId.
       */
      public int getUserId() {
        return userId_;
      }

      public static final int USERNAME_FIELD_NUMBER = 2;
      private volatile java.lang.Object userName_;

      /**
       * <pre>
       * 用户名称
       * </pre>
       *
       * <code>string userName = 2;</code>
       *
       * @return The userName.
       */
      public java.lang.String getUserName() {
        java.lang.Object ref = userName_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs =
                  (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          userName_ = s;
          return s;
        }
      }

      /**
       * <pre>
       * 用户名称
       * </pre>
       *
       * <code>string userName = 2;</code>
       *
       * @return The bytes for userName.
       */
      public com.google.protobuf.ByteString
      getUserNameBytes() {
        java.lang.Object ref = userName_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b =
                  com.google.protobuf.ByteString.copyFromUtf8(
                          (java.lang.String) ref);
          userName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int HEROAVATAR_FIELD_NUMBER = 3;
      private volatile java.lang.Object heroAvatar_;

      /**
       * <pre>
       * 英雄形象
       * </pre>
       *
       * <code>string heroAvatar = 3;</code>
       *
       * @return The heroAvatar.
       */
      public java.lang.String getHeroAvatar() {
        java.lang.Object ref = heroAvatar_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs =
                  (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          heroAvatar_ = s;
          return s;
        }
      }

      /**
       * <pre>
       * 英雄形象
       * </pre>
       *
       * <code>string heroAvatar = 3;</code>
       *
       * @return The bytes for heroAvatar.
       */
      public com.google.protobuf.ByteString
      getHeroAvatarBytes() {
        java.lang.Object ref = heroAvatar_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b =
                  com.google.protobuf.ByteString.copyFromUtf8(
                          (java.lang.String) ref);
          heroAvatar_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int MOVESTATE_FIELD_NUMBER = 4;
      private cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState moveState_;

      /**
       * <pre>
       * 移动状态
       * </pre>
       *
       * <code>.msg.WhoElseIsHereResult.UserInfo.MoveState moveState = 4;</code>
       *
       * @return Whether the moveState field is set.
       */
      public boolean hasMoveState() {
        return moveState_ != null;
      }

      /**
       * <pre>
       * 移动状态
       * </pre>
       *
       * <code>.msg.WhoElseIsHereResult.UserInfo.MoveState moveState = 4;</code>
       *
       * @return The moveState.
       */
      public cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState getMoveState() {
        return moveState_ == null ? cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState.getDefaultInstance() : moveState_;
      }

      /**
       * <pre>
       * 移动状态
       * </pre>
       *
       * <code>.msg.WhoElseIsHereResult.UserInfo.MoveState moveState = 4;</code>
       */
      public cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveStateOrBuilder getMoveStateOrBuilder() {
        return getMoveState();
      }

      private byte memoizedIsInitialized = -1;

      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
              throws java.io.IOException {
        if (userId_ != 0) {
          output.writeUInt32(1, userId_);
        }
        if (!getUserNameBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 2, userName_);
        }
        if (!getHeroAvatarBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 3, heroAvatar_);
        }
        if (moveState_ != null) {
          output.writeMessage(4, getMoveState());
        }
        unknownFields.writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (userId_ != 0) {
          size += com.google.protobuf.CodedOutputStream
                  .computeUInt32Size(1, userId_);
        }
        if (!getUserNameBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, userName_);
        }
        if (!getHeroAvatarBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, heroAvatar_);
        }
        if (moveState_ != null) {
          size += com.google.protobuf.CodedOutputStream
                  .computeMessageSize(4, getMoveState());
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
          return true;
        }
        if (!(obj instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo)) {
          return super.equals(obj);
        }
        cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo other = (cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo) obj;

        if (getUserId()
                != other.getUserId()) return false;
        if (!getUserName()
                .equals(other.getUserName())) return false;
        if (!getHeroAvatar()
                .equals(other.getHeroAvatar())) return false;
        if (hasMoveState() != other.hasMoveState()) return false;
        if (hasMoveState()) {
          if (!getMoveState()
                  .equals(other.getMoveState())) return false;
        }
        if (!unknownFields.equals(other.unknownFields)) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + USERID_FIELD_NUMBER;
        hash = (53 * hash) + getUserId();
        hash = (37 * hash) + USERNAME_FIELD_NUMBER;
        hash = (53 * hash) + getUserName().hashCode();
        hash = (37 * hash) + HEROAVATAR_FIELD_NUMBER;
        hash = (53 * hash) + getHeroAvatar().hashCode();
        if (hasMoveState()) {
          hash = (37 * hash) + MOVESTATE_FIELD_NUMBER;
          hash = (53 * hash) + getMoveState().hashCode();
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo parseFrom(
              java.nio.ByteBuffer data)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }

      public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo parseFrom(
              java.nio.ByteBuffer data,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }

      public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo parseFrom(
              com.google.protobuf.ByteString data)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }

      public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo parseFrom(
              com.google.protobuf.ByteString data,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }

      public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo parseFrom(byte[] data)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }

      public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo parseFrom(
              byte[] data,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }

      public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo parseFrom(java.io.InputStream input)
              throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input);
      }

      public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo parseFrom(
              java.io.InputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input, extensionRegistry);
      }

      public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo parseDelimitedFrom(java.io.InputStream input)
              throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
                .parseDelimitedWithIOException(PARSER, input);
      }

      public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo parseDelimitedFrom(
              java.io.InputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
                .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }

      public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo parseFrom(
              com.google.protobuf.CodedInputStream input)
              throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input);
      }

      public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo parseFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() {
        return newBuilder();
      }

      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }

      public static Builder newBuilder(cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }

      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
                ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
              com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }

      /**
       * <pre>
       * 用户信息
       * </pre>
       * <p>
       * Protobuf type {@code msg.WhoElseIsHereResult.UserInfo}
       */
      public static final class Builder extends
              com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
              // @@protoc_insertion_point(builder_implements:msg.WhoElseIsHereResult.UserInfo)
              cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfoOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
          return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_WhoElseIsHereResult_UserInfo_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
          return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_WhoElseIsHereResult_UserInfo_fieldAccessorTable
                  .ensureFieldAccessorsInitialized(
                          cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.class, cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.Builder.class);
        }

        // Construct using cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
                com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }

        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }

        @java.lang.Override
        public Builder clear() {
          super.clear();
          userId_ = 0;

          userName_ = "";

          heroAvatar_ = "";

          if (moveStateBuilder_ == null) {
            moveState_ = null;
          } else {
            moveState_ = null;
            moveStateBuilder_ = null;
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
        getDescriptorForType() {
          return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_WhoElseIsHereResult_UserInfo_descriptor;
        }

        @java.lang.Override
        public cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo getDefaultInstanceForType() {
          return cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.getDefaultInstance();
        }

        @java.lang.Override
        public cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo build() {
          cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo buildPartial() {
          cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo result = new cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo(this);
          result.userId_ = userId_;
          result.userName_ = userName_;
          result.heroAvatar_ = heroAvatar_;
          if (moveStateBuilder_ == null) {
            result.moveState_ = moveState_;
          } else {
            result.moveState_ = moveStateBuilder_.build();
          }
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }

        @java.lang.Override
        public Builder setField(
                com.google.protobuf.Descriptors.FieldDescriptor field,
                java.lang.Object value) {
          return super.setField(field, value);
        }

        @java.lang.Override
        public Builder clearField(
                com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }

        @java.lang.Override
        public Builder clearOneof(
                com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }

        @java.lang.Override
        public Builder setRepeatedField(
                com.google.protobuf.Descriptors.FieldDescriptor field,
                int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }

        @java.lang.Override
        public Builder addRepeatedField(
                com.google.protobuf.Descriptors.FieldDescriptor field,
                java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo) {
            return mergeFrom((cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo) other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo other) {
          if (other == cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.getDefaultInstance())
            return this;
          if (other.getUserId() != 0) {
            setUserId(other.getUserId());
          }
          if (!other.getUserName().isEmpty()) {
            userName_ = other.userName_;
            onChanged();
          }
          if (!other.getHeroAvatar().isEmpty()) {
            heroAvatar_ = other.heroAvatar_;
            onChanged();
          }
          if (other.hasMoveState()) {
            mergeMoveState(other.getMoveState());
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
          cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }

        private int userId_;

        /**
         * <pre>
         * 用户 Id
         * </pre>
         *
         * <code>uint32 userId = 1;</code>
         *
         * @return The userId.
         */
        public int getUserId() {
          return userId_;
        }

        /**
         * <pre>
         * 用户 Id
         * </pre>
         *
         * <code>uint32 userId = 1;</code>
         *
         * @param value The userId to set.
         * @return This builder for chaining.
         */
        public Builder setUserId(int value) {

          userId_ = value;
          onChanged();
          return this;
        }

        /**
         * <pre>
         * 用户 Id
         * </pre>
         *
         * <code>uint32 userId = 1;</code>
         *
         * @return This builder for chaining.
         */
        public Builder clearUserId() {

          userId_ = 0;
          onChanged();
          return this;
        }

        private java.lang.Object userName_ = "";

        /**
         * <pre>
         * 用户名称
         * </pre>
         *
         * <code>string userName = 2;</code>
         *
         * @return The userName.
         */
        public java.lang.String getUserName() {
          java.lang.Object ref = userName_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                    (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            userName_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }

        /**
         * <pre>
         * 用户名称
         * </pre>
         *
         * <code>string userName = 2;</code>
         *
         * @return The bytes for userName.
         */
        public com.google.protobuf.ByteString
        getUserNameBytes() {
          java.lang.Object ref = userName_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b =
                    com.google.protobuf.ByteString.copyFromUtf8(
                            (java.lang.String) ref);
            userName_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }

        /**
         * <pre>
         * 用户名称
         * </pre>
         *
         * <code>string userName = 2;</code>
         *
         * @param value The userName to set.
         * @return This builder for chaining.
         */
        public Builder setUserName(
                java.lang.String value) {
          if (value == null) {
            throw new NullPointerException();
          }

          userName_ = value;
          onChanged();
          return this;
        }

        /**
         * <pre>
         * 用户名称
         * </pre>
         *
         * <code>string userName = 2;</code>
         *
         * @return This builder for chaining.
         */
        public Builder clearUserName() {

          userName_ = getDefaultInstance().getUserName();
          onChanged();
          return this;
        }

        /**
         * <pre>
         * 用户名称
         * </pre>
         *
         * <code>string userName = 2;</code>
         *
         * @param value The bytes for userName to set.
         * @return This builder for chaining.
         */
        public Builder setUserNameBytes(
                com.google.protobuf.ByteString value) {
          if (value == null) {
            throw new NullPointerException();
          }
          checkByteStringIsUtf8(value);

          userName_ = value;
          onChanged();
          return this;
        }

        private java.lang.Object heroAvatar_ = "";

        /**
         * <pre>
         * 英雄形象
         * </pre>
         *
         * <code>string heroAvatar = 3;</code>
         *
         * @return The heroAvatar.
         */
        public java.lang.String getHeroAvatar() {
          java.lang.Object ref = heroAvatar_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                    (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            heroAvatar_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }

        /**
         * <pre>
         * 英雄形象
         * </pre>
         *
         * <code>string heroAvatar = 3;</code>
         *
         * @return The bytes for heroAvatar.
         */
        public com.google.protobuf.ByteString
        getHeroAvatarBytes() {
          java.lang.Object ref = heroAvatar_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b =
                    com.google.protobuf.ByteString.copyFromUtf8(
                            (java.lang.String) ref);
            heroAvatar_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }

        /**
         * <pre>
         * 英雄形象
         * </pre>
         *
         * <code>string heroAvatar = 3;</code>
         *
         * @param value The heroAvatar to set.
         * @return This builder for chaining.
         */
        public Builder setHeroAvatar(
                java.lang.String value) {
          if (value == null) {
            throw new NullPointerException();
          }

          heroAvatar_ = value;
          onChanged();
          return this;
        }

        /**
         * <pre>
         * 英雄形象
         * </pre>
         *
         * <code>string heroAvatar = 3;</code>
         *
         * @return This builder for chaining.
         */
        public Builder clearHeroAvatar() {

          heroAvatar_ = getDefaultInstance().getHeroAvatar();
          onChanged();
          return this;
        }

        /**
         * <pre>
         * 英雄形象
         * </pre>
         *
         * <code>string heroAvatar = 3;</code>
         *
         * @param value The bytes for heroAvatar to set.
         * @return This builder for chaining.
         */
        public Builder setHeroAvatarBytes(
                com.google.protobuf.ByteString value) {
          if (value == null) {
            throw new NullPointerException();
          }
          checkByteStringIsUtf8(value);

          heroAvatar_ = value;
          onChanged();
          return this;
        }

        private cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState moveState_;
        private com.google.protobuf.SingleFieldBuilderV3<
                cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState, cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState.Builder, cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveStateOrBuilder> moveStateBuilder_;

        /**
         * <pre>
         * 移动状态
         * </pre>
         *
         * <code>.msg.WhoElseIsHereResult.UserInfo.MoveState moveState = 4;</code>
         *
         * @return Whether the moveState field is set.
         */
        public boolean hasMoveState() {
          return moveStateBuilder_ != null || moveState_ != null;
        }

        /**
         * <pre>
         * 移动状态
         * </pre>
         *
         * <code>.msg.WhoElseIsHereResult.UserInfo.MoveState moveState = 4;</code>
         *
         * @return The moveState.
         */
        public cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState getMoveState() {
          if (moveStateBuilder_ == null) {
            return moveState_ == null ? cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState.getDefaultInstance() : moveState_;
          } else {
            return moveStateBuilder_.getMessage();
          }
        }

        /**
         * <pre>
         * 移动状态
         * </pre>
         *
         * <code>.msg.WhoElseIsHereResult.UserInfo.MoveState moveState = 4;</code>
         */
        public Builder setMoveState(cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState value) {
          if (moveStateBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            moveState_ = value;
            onChanged();
          } else {
            moveStateBuilder_.setMessage(value);
          }

          return this;
        }

        /**
         * <pre>
         * 移动状态
         * </pre>
         *
         * <code>.msg.WhoElseIsHereResult.UserInfo.MoveState moveState = 4;</code>
         */
        public Builder setMoveState(
                cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState.Builder builderForValue) {
          if (moveStateBuilder_ == null) {
            moveState_ = builderForValue.build();
            onChanged();
          } else {
            moveStateBuilder_.setMessage(builderForValue.build());
          }

          return this;
        }

        /**
         * <pre>
         * 移动状态
         * </pre>
         *
         * <code>.msg.WhoElseIsHereResult.UserInfo.MoveState moveState = 4;</code>
         */
        public Builder mergeMoveState(cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState value) {
          if (moveStateBuilder_ == null) {
            if (moveState_ != null) {
              moveState_ =
                      cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState.newBuilder(moveState_).mergeFrom(value).buildPartial();
            } else {
              moveState_ = value;
            }
            onChanged();
          } else {
            moveStateBuilder_.mergeFrom(value);
          }

          return this;
        }

        /**
         * <pre>
         * 移动状态
         * </pre>
         *
         * <code>.msg.WhoElseIsHereResult.UserInfo.MoveState moveState = 4;</code>
         */
        public Builder clearMoveState() {
          if (moveStateBuilder_ == null) {
            moveState_ = null;
            onChanged();
          } else {
            moveState_ = null;
            moveStateBuilder_ = null;
          }

          return this;
        }

        /**
         * <pre>
         * 移动状态
         * </pre>
         *
         * <code>.msg.WhoElseIsHereResult.UserInfo.MoveState moveState = 4;</code>
         */
        public cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState.Builder getMoveStateBuilder() {

          onChanged();
          return getMoveStateFieldBuilder().getBuilder();
        }

        /**
         * <pre>
         * 移动状态
         * </pre>
         *
         * <code>.msg.WhoElseIsHereResult.UserInfo.MoveState moveState = 4;</code>
         */
        public cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveStateOrBuilder getMoveStateOrBuilder() {
          if (moveStateBuilder_ != null) {
            return moveStateBuilder_.getMessageOrBuilder();
          } else {
            return moveState_ == null ?
                    cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState.getDefaultInstance() : moveState_;
          }
        }

        /**
         * <pre>
         * 移动状态
         * </pre>
         *
         * <code>.msg.WhoElseIsHereResult.UserInfo.MoveState moveState = 4;</code>
         */
        private com.google.protobuf.SingleFieldBuilderV3<
                cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState, cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState.Builder, cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveStateOrBuilder>
        getMoveStateFieldBuilder() {
          if (moveStateBuilder_ == null) {
            moveStateBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                    cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState, cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveState.Builder, cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.MoveStateOrBuilder>(
                    getMoveState(),
                    getParentForChildren(),
                    isClean());
            moveState_ = null;
          }
          return moveStateBuilder_;
        }

        @java.lang.Override
        public final Builder setUnknownFields(
                final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
                final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:msg.WhoElseIsHereResult.UserInfo)
      }

      // @@protoc_insertion_point(class_scope:msg.WhoElseIsHereResult.UserInfo)
      private static final cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo DEFAULT_INSTANCE;

      static {
        DEFAULT_INSTANCE = new cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo();
      }

      public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<UserInfo>
              PARSER = new com.google.protobuf.AbstractParser<UserInfo>() {
        @java.lang.Override
        public UserInfo parsePartialFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
          return new UserInfo(input, extensionRegistry);
        }
      };

      public static com.google.protobuf.Parser<UserInfo> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<UserInfo> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public static final int USERINFO_FIELD_NUMBER = 1;
    private java.util.List<cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo> userInfo_;

    /**
     * <pre>
     * 用户信息数组
     * </pre>
     *
     * <code>repeated .msg.WhoElseIsHereResult.UserInfo userInfo = 1;</code>
     */
    public java.util.List<cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo> getUserInfoList() {
      return userInfo_;
    }

    /**
     * <pre>
     * 用户信息数组
     * </pre>
     *
     * <code>repeated .msg.WhoElseIsHereResult.UserInfo userInfo = 1;</code>
     */
    public java.util.List<? extends cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfoOrBuilder>
    getUserInfoOrBuilderList() {
      return userInfo_;
    }

    /**
     * <pre>
     * 用户信息数组
     * </pre>
     *
     * <code>repeated .msg.WhoElseIsHereResult.UserInfo userInfo = 1;</code>
     */
    public int getUserInfoCount() {
      return userInfo_.size();
    }

    /**
     * <pre>
     * 用户信息数组
     * </pre>
     *
     * <code>repeated .msg.WhoElseIsHereResult.UserInfo userInfo = 1;</code>
     */
    public cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo getUserInfo(int index) {
      return userInfo_.get(index);
    }

    /**
     * <pre>
     * 用户信息数组
     * </pre>
     *
     * <code>repeated .msg.WhoElseIsHereResult.UserInfo userInfo = 1;</code>
     */
    public cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfoOrBuilder getUserInfoOrBuilder(
            int index) {
      return userInfo_.get(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
            throws java.io.IOException {
      for (int i = 0; i < userInfo_.size(); i++) {
        output.writeMessage(1, userInfo_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < userInfo_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
                .computeMessageSize(1, userInfo_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult)) {
        return super.equals(obj);
      }
      cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult other = (cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult) obj;

      if (!getUserInfoList()
              .equals(other.getUserInfoList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getUserInfoCount() > 0) {
        hash = (37 * hash) + USERINFO_FIELD_NUMBER;
        hash = (53 * hash) + getUserInfoList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult parseFrom(java.io.InputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }

    /**
     * <pre>
     * 结果
     * </pre>
     * <p>
     * Protobuf type {@code msg.WhoElseIsHereResult}
     */
    public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:msg.WhoElseIsHereResult)
            cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResultOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
      getDescriptor() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_WhoElseIsHereResult_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_WhoElseIsHereResult_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                        cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.class, cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.Builder.class);
      }

      // Construct using cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
              com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getUserInfoFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (userInfoBuilder_ == null) {
          userInfo_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          userInfoBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
      getDescriptorForType() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_WhoElseIsHereResult_descriptor;
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult getDefaultInstanceForType() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.getDefaultInstance();
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult build() {
        cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult buildPartial() {
        cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult result = new cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult(this);
        int from_bitField0_ = bitField0_;
        if (userInfoBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            userInfo_ = java.util.Collections.unmodifiableList(userInfo_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.userInfo_ = userInfo_;
        } else {
          result.userInfo_ = userInfoBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }

      @java.lang.Override
      public Builder setField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
        return super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(
              com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(
              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult) {
          return mergeFrom((cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult other) {
        if (other == cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.getDefaultInstance())
          return this;
        if (userInfoBuilder_ == null) {
          if (!other.userInfo_.isEmpty()) {
            if (userInfo_.isEmpty()) {
              userInfo_ = other.userInfo_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureUserInfoIsMutable();
              userInfo_.addAll(other.userInfo_);
            }
            onChanged();
          }
        } else {
          if (!other.userInfo_.isEmpty()) {
            if (userInfoBuilder_.isEmpty()) {
              userInfoBuilder_.dispose();
              userInfoBuilder_ = null;
              userInfo_ = other.userInfo_;
              bitField0_ = (bitField0_ & ~0x00000001);
              userInfoBuilder_ =
                      com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                              getUserInfoFieldBuilder() : null;
            } else {
              userInfoBuilder_.addAllMessages(other.userInfo_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.util.List<cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo> userInfo_ =
              java.util.Collections.emptyList();

      private void ensureUserInfoIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          userInfo_ = new java.util.ArrayList<cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo>(userInfo_);
          bitField0_ |= 0x00000001;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo, cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.Builder, cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfoOrBuilder> userInfoBuilder_;

      /**
       * <pre>
       * 用户信息数组
       * </pre>
       *
       * <code>repeated .msg.WhoElseIsHereResult.UserInfo userInfo = 1;</code>
       */
      public java.util.List<cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo> getUserInfoList() {
        if (userInfoBuilder_ == null) {
          return java.util.Collections.unmodifiableList(userInfo_);
        } else {
          return userInfoBuilder_.getMessageList();
        }
      }

      /**
       * <pre>
       * 用户信息数组
       * </pre>
       *
       * <code>repeated .msg.WhoElseIsHereResult.UserInfo userInfo = 1;</code>
       */
      public int getUserInfoCount() {
        if (userInfoBuilder_ == null) {
          return userInfo_.size();
        } else {
          return userInfoBuilder_.getCount();
        }
      }

      /**
       * <pre>
       * 用户信息数组
       * </pre>
       *
       * <code>repeated .msg.WhoElseIsHereResult.UserInfo userInfo = 1;</code>
       */
      public cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo getUserInfo(int index) {
        if (userInfoBuilder_ == null) {
          return userInfo_.get(index);
        } else {
          return userInfoBuilder_.getMessage(index);
        }
      }

      /**
       * <pre>
       * 用户信息数组
       * </pre>
       *
       * <code>repeated .msg.WhoElseIsHereResult.UserInfo userInfo = 1;</code>
       */
      public Builder setUserInfo(
              int index, cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo value) {
        if (userInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureUserInfoIsMutable();
          userInfo_.set(index, value);
          onChanged();
        } else {
          userInfoBuilder_.setMessage(index, value);
        }
        return this;
      }

      /**
       * <pre>
       * 用户信息数组
       * </pre>
       *
       * <code>repeated .msg.WhoElseIsHereResult.UserInfo userInfo = 1;</code>
       */
      public Builder setUserInfo(
              int index, cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.Builder builderForValue) {
        if (userInfoBuilder_ == null) {
          ensureUserInfoIsMutable();
          userInfo_.set(index, builderForValue.build());
          onChanged();
        } else {
          userInfoBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }

      /**
       * <pre>
       * 用户信息数组
       * </pre>
       *
       * <code>repeated .msg.WhoElseIsHereResult.UserInfo userInfo = 1;</code>
       */
      public Builder addUserInfo(cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo value) {
        if (userInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureUserInfoIsMutable();
          userInfo_.add(value);
          onChanged();
        } else {
          userInfoBuilder_.addMessage(value);
        }
        return this;
      }

      /**
       * <pre>
       * 用户信息数组
       * </pre>
       *
       * <code>repeated .msg.WhoElseIsHereResult.UserInfo userInfo = 1;</code>
       */
      public Builder addUserInfo(
              int index, cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo value) {
        if (userInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureUserInfoIsMutable();
          userInfo_.add(index, value);
          onChanged();
        } else {
          userInfoBuilder_.addMessage(index, value);
        }
        return this;
      }

      /**
       * <pre>
       * 用户信息数组
       * </pre>
       *
       * <code>repeated .msg.WhoElseIsHereResult.UserInfo userInfo = 1;</code>
       */
      public Builder addUserInfo(
              cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.Builder builderForValue) {
        if (userInfoBuilder_ == null) {
          ensureUserInfoIsMutable();
          userInfo_.add(builderForValue.build());
          onChanged();
        } else {
          userInfoBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }

      /**
       * <pre>
       * 用户信息数组
       * </pre>
       *
       * <code>repeated .msg.WhoElseIsHereResult.UserInfo userInfo = 1;</code>
       */
      public Builder addUserInfo(
              int index, cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.Builder builderForValue) {
        if (userInfoBuilder_ == null) {
          ensureUserInfoIsMutable();
          userInfo_.add(index, builderForValue.build());
          onChanged();
        } else {
          userInfoBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }

      /**
       * <pre>
       * 用户信息数组
       * </pre>
       *
       * <code>repeated .msg.WhoElseIsHereResult.UserInfo userInfo = 1;</code>
       */
      public Builder addAllUserInfo(
              java.lang.Iterable<? extends cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo> values) {
        if (userInfoBuilder_ == null) {
          ensureUserInfoIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
                  values, userInfo_);
          onChanged();
        } else {
          userInfoBuilder_.addAllMessages(values);
        }
        return this;
      }

      /**
       * <pre>
       * 用户信息数组
       * </pre>
       *
       * <code>repeated .msg.WhoElseIsHereResult.UserInfo userInfo = 1;</code>
       */
      public Builder clearUserInfo() {
        if (userInfoBuilder_ == null) {
          userInfo_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          userInfoBuilder_.clear();
        }
        return this;
      }

      /**
       * <pre>
       * 用户信息数组
       * </pre>
       *
       * <code>repeated .msg.WhoElseIsHereResult.UserInfo userInfo = 1;</code>
       */
      public Builder removeUserInfo(int index) {
        if (userInfoBuilder_ == null) {
          ensureUserInfoIsMutable();
          userInfo_.remove(index);
          onChanged();
        } else {
          userInfoBuilder_.remove(index);
        }
        return this;
      }

      /**
       * <pre>
       * 用户信息数组
       * </pre>
       *
       * <code>repeated .msg.WhoElseIsHereResult.UserInfo userInfo = 1;</code>
       */
      public cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.Builder getUserInfoBuilder(
              int index) {
        return getUserInfoFieldBuilder().getBuilder(index);
      }

      /**
       * <pre>
       * 用户信息数组
       * </pre>
       *
       * <code>repeated .msg.WhoElseIsHereResult.UserInfo userInfo = 1;</code>
       */
      public cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfoOrBuilder getUserInfoOrBuilder(
              int index) {
        if (userInfoBuilder_ == null) {
          return userInfo_.get(index);
        } else {
          return userInfoBuilder_.getMessageOrBuilder(index);
        }
      }

      /**
       * <pre>
       * 用户信息数组
       * </pre>
       *
       * <code>repeated .msg.WhoElseIsHereResult.UserInfo userInfo = 1;</code>
       */
      public java.util.List<? extends cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfoOrBuilder>
      getUserInfoOrBuilderList() {
        if (userInfoBuilder_ != null) {
          return userInfoBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(userInfo_);
        }
      }

      /**
       * <pre>
       * 用户信息数组
       * </pre>
       *
       * <code>repeated .msg.WhoElseIsHereResult.UserInfo userInfo = 1;</code>
       */
      public cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.Builder addUserInfoBuilder() {
        return getUserInfoFieldBuilder().addBuilder(
                cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.getDefaultInstance());
      }

      /**
       * <pre>
       * 用户信息数组
       * </pre>
       *
       * <code>repeated .msg.WhoElseIsHereResult.UserInfo userInfo = 1;</code>
       */
      public cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.Builder addUserInfoBuilder(
              int index) {
        return getUserInfoFieldBuilder().addBuilder(
                index, cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.getDefaultInstance());
      }

      /**
       * <pre>
       * 用户信息数组
       * </pre>
       *
       * <code>repeated .msg.WhoElseIsHereResult.UserInfo userInfo = 1;</code>
       */
      public java.util.List<cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.Builder>
      getUserInfoBuilderList() {
        return getUserInfoFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo, cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.Builder, cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfoOrBuilder>
      getUserInfoFieldBuilder() {
        if (userInfoBuilder_ == null) {
          userInfoBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                  cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo, cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfo.Builder, cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult.UserInfoOrBuilder>(
                  userInfo_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          userInfo_ = null;
        }
        return userInfoBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:msg.WhoElseIsHereResult)
    }

    // @@protoc_insertion_point(class_scope:msg.WhoElseIsHereResult)
    private static final cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult();
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<WhoElseIsHereResult>
            PARSER = new com.google.protobuf.AbstractParser<WhoElseIsHereResult>() {
      @java.lang.Override
      public WhoElseIsHereResult parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return new WhoElseIsHereResult(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<WhoElseIsHereResult> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<WhoElseIsHereResult> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cn.lei.netty.herostory.msg.GameMsgProtocol.WhoElseIsHereResult getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface UserMoveToCmdOrBuilder extends
          // @@protoc_insertion_point(interface_extends:msg.UserMoveToCmd)
          com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     *
     * XXX 注意: 用户移动指令中没有用户 Id,
     * 这是为什么?
     *
     * 起始位置 X
     * </pre>
     *
     * <code>float moveFromPosX = 1;</code>
     *
     * @return The moveFromPosX.
     */
    float getMoveFromPosX();

    /**
     * <pre>
     * 起始位置 Y
     * </pre>
     *
     * <code>float moveFromPosY = 2;</code>
     *
     * @return The moveFromPosY.
     */
    float getMoveFromPosY();

    /**
     * <pre>
     * 移动到位置 X
     * </pre>
     *
     * <code>float moveToPosX = 3;</code>
     *
     * @return The moveToPosX.
     */
    float getMoveToPosX();

    /**
     * <pre>
     * 移动到位置 Y
     * </pre>
     *
     * <code>float moveToPosY = 4;</code>
     *
     * @return The moveToPosY.
     */
    float getMoveToPosY();
  }

  /**
   * <pre>
   *
   * 用户移动
   * /////////////////////////////////////////////////////////////////////
   * 指令
   * </pre>
   * <p>
   * Protobuf type {@code msg.UserMoveToCmd}
   */
  public static final class UserMoveToCmd extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:msg.UserMoveToCmd)
          UserMoveToCmdOrBuilder {
    private static final long serialVersionUID = 0L;

    // Use UserMoveToCmd.newBuilder() to construct.
    private UserMoveToCmd(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private UserMoveToCmd() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
      return new UserMoveToCmd();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }

    private UserMoveToCmd(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 13: {

              moveFromPosX_ = input.readFloat();
              break;
            }
            case 21: {

              moveFromPosY_ = input.readFloat();
              break;
            }
            case 29: {

              moveToPosX_ = input.readFloat();
              break;
            }
            case 37: {

              moveToPosY_ = input.readFloat();
              break;
            }
            default: {
              if (!parseUnknownField(
                      input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
                e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor
    getDescriptor() {
      return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserMoveToCmd_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    internalGetFieldAccessorTable() {
      return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserMoveToCmd_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                      cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToCmd.class, cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToCmd.Builder.class);
    }

    public static final int MOVEFROMPOSX_FIELD_NUMBER = 1;
    private float moveFromPosX_;

    /**
     * <pre>
     *
     * XXX 注意: 用户移动指令中没有用户 Id,
     * 这是为什么?
     *
     * 起始位置 X
     * </pre>
     *
     * <code>float moveFromPosX = 1;</code>
     *
     * @return The moveFromPosX.
     */
    public float getMoveFromPosX() {
      return moveFromPosX_;
    }

    public static final int MOVEFROMPOSY_FIELD_NUMBER = 2;
    private float moveFromPosY_;

    /**
     * <pre>
     * 起始位置 Y
     * </pre>
     *
     * <code>float moveFromPosY = 2;</code>
     *
     * @return The moveFromPosY.
     */
    public float getMoveFromPosY() {
      return moveFromPosY_;
    }

    public static final int MOVETOPOSX_FIELD_NUMBER = 3;
    private float moveToPosX_;

    /**
     * <pre>
     * 移动到位置 X
     * </pre>
     *
     * <code>float moveToPosX = 3;</code>
     *
     * @return The moveToPosX.
     */
    public float getMoveToPosX() {
      return moveToPosX_;
    }

    public static final int MOVETOPOSY_FIELD_NUMBER = 4;
    private float moveToPosY_;

    /**
     * <pre>
     * 移动到位置 Y
     * </pre>
     *
     * <code>float moveToPosY = 4;</code>
     *
     * @return The moveToPosY.
     */
    public float getMoveToPosY() {
      return moveToPosY_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
            throws java.io.IOException {
      if (moveFromPosX_ != 0F) {
        output.writeFloat(1, moveFromPosX_);
      }
      if (moveFromPosY_ != 0F) {
        output.writeFloat(2, moveFromPosY_);
      }
      if (moveToPosX_ != 0F) {
        output.writeFloat(3, moveToPosX_);
      }
      if (moveToPosY_ != 0F) {
        output.writeFloat(4, moveToPosY_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (moveFromPosX_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
                .computeFloatSize(1, moveFromPosX_);
      }
      if (moveFromPosY_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
                .computeFloatSize(2, moveFromPosY_);
      }
      if (moveToPosX_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
                .computeFloatSize(3, moveToPosX_);
      }
      if (moveToPosY_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
                .computeFloatSize(4, moveToPosY_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToCmd)) {
        return super.equals(obj);
      }
      cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToCmd other = (cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToCmd) obj;

      if (java.lang.Float.floatToIntBits(getMoveFromPosX())
              != java.lang.Float.floatToIntBits(
              other.getMoveFromPosX())) return false;
      if (java.lang.Float.floatToIntBits(getMoveFromPosY())
              != java.lang.Float.floatToIntBits(
              other.getMoveFromPosY())) return false;
      if (java.lang.Float.floatToIntBits(getMoveToPosX())
              != java.lang.Float.floatToIntBits(
              other.getMoveToPosX())) return false;
      if (java.lang.Float.floatToIntBits(getMoveToPosY())
              != java.lang.Float.floatToIntBits(
              other.getMoveToPosY())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + MOVEFROMPOSX_FIELD_NUMBER;
      hash = (53 * hash) + java.lang.Float.floatToIntBits(
              getMoveFromPosX());
      hash = (37 * hash) + MOVEFROMPOSY_FIELD_NUMBER;
      hash = (53 * hash) + java.lang.Float.floatToIntBits(
              getMoveFromPosY());
      hash = (37 * hash) + MOVETOPOSX_FIELD_NUMBER;
      hash = (53 * hash) + java.lang.Float.floatToIntBits(
              getMoveToPosX());
      hash = (37 * hash) + MOVETOPOSY_FIELD_NUMBER;
      hash = (53 * hash) + java.lang.Float.floatToIntBits(
              getMoveToPosY());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToCmd parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToCmd parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToCmd parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToCmd parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToCmd parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToCmd parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToCmd parseFrom(java.io.InputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToCmd parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToCmd parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToCmd parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToCmd parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToCmd parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToCmd prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }

    /**
     * <pre>
     *
     * 用户移动
     * /////////////////////////////////////////////////////////////////////
     * 指令
     * </pre>
     * <p>
     * Protobuf type {@code msg.UserMoveToCmd}
     */
    public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:msg.UserMoveToCmd)
            cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToCmdOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
      getDescriptor() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserMoveToCmd_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserMoveToCmd_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                        cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToCmd.class, cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToCmd.Builder.class);
      }

      // Construct using cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToCmd.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
              com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        moveFromPosX_ = 0F;

        moveFromPosY_ = 0F;

        moveToPosX_ = 0F;

        moveToPosY_ = 0F;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
      getDescriptorForType() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserMoveToCmd_descriptor;
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToCmd getDefaultInstanceForType() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToCmd.getDefaultInstance();
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToCmd build() {
        cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToCmd result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToCmd buildPartial() {
        cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToCmd result = new cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToCmd(this);
        result.moveFromPosX_ = moveFromPosX_;
        result.moveFromPosY_ = moveFromPosY_;
        result.moveToPosX_ = moveToPosX_;
        result.moveToPosY_ = moveToPosY_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }

      @java.lang.Override
      public Builder setField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
        return super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(
              com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(
              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToCmd) {
          return mergeFrom((cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToCmd) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToCmd other) {
        if (other == cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToCmd.getDefaultInstance()) return this;
        if (other.getMoveFromPosX() != 0F) {
          setMoveFromPosX(other.getMoveFromPosX());
        }
        if (other.getMoveFromPosY() != 0F) {
          setMoveFromPosY(other.getMoveFromPosY());
        }
        if (other.getMoveToPosX() != 0F) {
          setMoveToPosX(other.getMoveToPosX());
        }
        if (other.getMoveToPosY() != 0F) {
          setMoveToPosY(other.getMoveToPosY());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToCmd parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToCmd) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private float moveFromPosX_;

      /**
       * <pre>
       *
       * XXX 注意: 用户移动指令中没有用户 Id,
       * 这是为什么?
       *
       * 起始位置 X
       * </pre>
       *
       * <code>float moveFromPosX = 1;</code>
       *
       * @return The moveFromPosX.
       */
      public float getMoveFromPosX() {
        return moveFromPosX_;
      }

      /**
       * <pre>
       *
       * XXX 注意: 用户移动指令中没有用户 Id,
       * 这是为什么?
       *
       * 起始位置 X
       * </pre>
       *
       * <code>float moveFromPosX = 1;</code>
       *
       * @param value The moveFromPosX to set.
       * @return This builder for chaining.
       */
      public Builder setMoveFromPosX(float value) {

        moveFromPosX_ = value;
        onChanged();
        return this;
      }

      /**
       * <pre>
       *
       * XXX 注意: 用户移动指令中没有用户 Id,
       * 这是为什么?
       *
       * 起始位置 X
       * </pre>
       *
       * <code>float moveFromPosX = 1;</code>
       *
       * @return This builder for chaining.
       */
      public Builder clearMoveFromPosX() {

        moveFromPosX_ = 0F;
        onChanged();
        return this;
      }

      private float moveFromPosY_;

      /**
       * <pre>
       * 起始位置 Y
       * </pre>
       *
       * <code>float moveFromPosY = 2;</code>
       *
       * @return The moveFromPosY.
       */
      public float getMoveFromPosY() {
        return moveFromPosY_;
      }

      /**
       * <pre>
       * 起始位置 Y
       * </pre>
       *
       * <code>float moveFromPosY = 2;</code>
       *
       * @param value The moveFromPosY to set.
       * @return This builder for chaining.
       */
      public Builder setMoveFromPosY(float value) {

        moveFromPosY_ = value;
        onChanged();
        return this;
      }

      /**
       * <pre>
       * 起始位置 Y
       * </pre>
       *
       * <code>float moveFromPosY = 2;</code>
       *
       * @return This builder for chaining.
       */
      public Builder clearMoveFromPosY() {

        moveFromPosY_ = 0F;
        onChanged();
        return this;
      }

      private float moveToPosX_;

      /**
       * <pre>
       * 移动到位置 X
       * </pre>
       *
       * <code>float moveToPosX = 3;</code>
       *
       * @return The moveToPosX.
       */
      public float getMoveToPosX() {
        return moveToPosX_;
      }

      /**
       * <pre>
       * 移动到位置 X
       * </pre>
       *
       * <code>float moveToPosX = 3;</code>
       *
       * @param value The moveToPosX to set.
       * @return This builder for chaining.
       */
      public Builder setMoveToPosX(float value) {

        moveToPosX_ = value;
        onChanged();
        return this;
      }

      /**
       * <pre>
       * 移动到位置 X
       * </pre>
       *
       * <code>float moveToPosX = 3;</code>
       *
       * @return This builder for chaining.
       */
      public Builder clearMoveToPosX() {

        moveToPosX_ = 0F;
        onChanged();
        return this;
      }

      private float moveToPosY_;

      /**
       * <pre>
       * 移动到位置 Y
       * </pre>
       *
       * <code>float moveToPosY = 4;</code>
       *
       * @return The moveToPosY.
       */
      public float getMoveToPosY() {
        return moveToPosY_;
      }

      /**
       * <pre>
       * 移动到位置 Y
       * </pre>
       *
       * <code>float moveToPosY = 4;</code>
       *
       * @param value The moveToPosY to set.
       * @return This builder for chaining.
       */
      public Builder setMoveToPosY(float value) {

        moveToPosY_ = value;
        onChanged();
        return this;
      }

      /**
       * <pre>
       * 移动到位置 Y
       * </pre>
       *
       * <code>float moveToPosY = 4;</code>
       *
       * @return This builder for chaining.
       */
      public Builder clearMoveToPosY() {

        moveToPosY_ = 0F;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:msg.UserMoveToCmd)
    }

    // @@protoc_insertion_point(class_scope:msg.UserMoveToCmd)
    private static final cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToCmd DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToCmd();
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToCmd getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<UserMoveToCmd>
            PARSER = new com.google.protobuf.AbstractParser<UserMoveToCmd>() {
      @java.lang.Override
      public UserMoveToCmd parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return new UserMoveToCmd(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<UserMoveToCmd> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<UserMoveToCmd> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToCmd getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface UserMoveToResultOrBuilder extends
          // @@protoc_insertion_point(interface_extends:msg.UserMoveToResult)
          com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * 移动用户 Id
     * </pre>
     *
     * <code>uint32 moveUserId = 1;</code>
     *
     * @return The moveUserId.
     */
    int getMoveUserId();

    /**
     * <pre>
     * 起始位置 X
     * </pre>
     *
     * <code>float moveFromPosX = 2;</code>
     *
     * @return The moveFromPosX.
     */
    float getMoveFromPosX();

    /**
     * <pre>
     * 起始位置 Y
     * </pre>
     *
     * <code>float moveFromPosY = 3;</code>
     *
     * @return The moveFromPosY.
     */
    float getMoveFromPosY();

    /**
     * <pre>
     * 移动到位置 X
     * </pre>
     *
     * <code>float moveToPosX = 4;</code>
     *
     * @return The moveToPosX.
     */
    float getMoveToPosX();

    /**
     * <pre>
     * 移动到位置 Y
     * </pre>
     *
     * <code>float moveToPosY = 5;</code>
     *
     * @return The moveToPosY.
     */
    float getMoveToPosY();

    /**
     * <pre>
     * 启程时间戳
     * </pre>
     *
     * <code>uint64 moveStartTime = 6;</code>
     *
     * @return The moveStartTime.
     */
    long getMoveStartTime();
  }

  /**
   * <pre>
   * 结果
   * </pre>
   * <p>
   * Protobuf type {@code msg.UserMoveToResult}
   */
  public static final class UserMoveToResult extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:msg.UserMoveToResult)
          UserMoveToResultOrBuilder {
    private static final long serialVersionUID = 0L;

    // Use UserMoveToResult.newBuilder() to construct.
    private UserMoveToResult(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private UserMoveToResult() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
      return new UserMoveToResult();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }

    private UserMoveToResult(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {

              moveUserId_ = input.readUInt32();
              break;
            }
            case 21: {

              moveFromPosX_ = input.readFloat();
              break;
            }
            case 29: {

              moveFromPosY_ = input.readFloat();
              break;
            }
            case 37: {

              moveToPosX_ = input.readFloat();
              break;
            }
            case 45: {

              moveToPosY_ = input.readFloat();
              break;
            }
            case 48: {

              moveStartTime_ = input.readUInt64();
              break;
            }
            default: {
              if (!parseUnknownField(
                      input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
                e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor
    getDescriptor() {
      return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserMoveToResult_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    internalGetFieldAccessorTable() {
      return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserMoveToResult_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                      cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToResult.class, cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToResult.Builder.class);
    }

    public static final int MOVEUSERID_FIELD_NUMBER = 1;
    private int moveUserId_;

    /**
     * <pre>
     * 移动用户 Id
     * </pre>
     *
     * <code>uint32 moveUserId = 1;</code>
     *
     * @return The moveUserId.
     */
    public int getMoveUserId() {
      return moveUserId_;
    }

    public static final int MOVEFROMPOSX_FIELD_NUMBER = 2;
    private float moveFromPosX_;

    /**
     * <pre>
     * 起始位置 X
     * </pre>
     *
     * <code>float moveFromPosX = 2;</code>
     *
     * @return The moveFromPosX.
     */
    public float getMoveFromPosX() {
      return moveFromPosX_;
    }

    public static final int MOVEFROMPOSY_FIELD_NUMBER = 3;
    private float moveFromPosY_;

    /**
     * <pre>
     * 起始位置 Y
     * </pre>
     *
     * <code>float moveFromPosY = 3;</code>
     *
     * @return The moveFromPosY.
     */
    public float getMoveFromPosY() {
      return moveFromPosY_;
    }

    public static final int MOVETOPOSX_FIELD_NUMBER = 4;
    private float moveToPosX_;

    /**
     * <pre>
     * 移动到位置 X
     * </pre>
     *
     * <code>float moveToPosX = 4;</code>
     *
     * @return The moveToPosX.
     */
    public float getMoveToPosX() {
      return moveToPosX_;
    }

    public static final int MOVETOPOSY_FIELD_NUMBER = 5;
    private float moveToPosY_;

    /**
     * <pre>
     * 移动到位置 Y
     * </pre>
     *
     * <code>float moveToPosY = 5;</code>
     *
     * @return The moveToPosY.
     */
    public float getMoveToPosY() {
      return moveToPosY_;
    }

    public static final int MOVESTARTTIME_FIELD_NUMBER = 6;
    private long moveStartTime_;

    /**
     * <pre>
     * 启程时间戳
     * </pre>
     *
     * <code>uint64 moveStartTime = 6;</code>
     *
     * @return The moveStartTime.
     */
    public long getMoveStartTime() {
      return moveStartTime_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
            throws java.io.IOException {
      if (moveUserId_ != 0) {
        output.writeUInt32(1, moveUserId_);
      }
      if (moveFromPosX_ != 0F) {
        output.writeFloat(2, moveFromPosX_);
      }
      if (moveFromPosY_ != 0F) {
        output.writeFloat(3, moveFromPosY_);
      }
      if (moveToPosX_ != 0F) {
        output.writeFloat(4, moveToPosX_);
      }
      if (moveToPosY_ != 0F) {
        output.writeFloat(5, moveToPosY_);
      }
      if (moveStartTime_ != 0L) {
        output.writeUInt64(6, moveStartTime_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (moveUserId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
                .computeUInt32Size(1, moveUserId_);
      }
      if (moveFromPosX_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
                .computeFloatSize(2, moveFromPosX_);
      }
      if (moveFromPosY_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
                .computeFloatSize(3, moveFromPosY_);
      }
      if (moveToPosX_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
                .computeFloatSize(4, moveToPosX_);
      }
      if (moveToPosY_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
                .computeFloatSize(5, moveToPosY_);
      }
      if (moveStartTime_ != 0L) {
        size += com.google.protobuf.CodedOutputStream
                .computeUInt64Size(6, moveStartTime_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToResult)) {
        return super.equals(obj);
      }
      cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToResult other = (cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToResult) obj;

      if (getMoveUserId()
              != other.getMoveUserId()) return false;
      if (java.lang.Float.floatToIntBits(getMoveFromPosX())
              != java.lang.Float.floatToIntBits(
              other.getMoveFromPosX())) return false;
      if (java.lang.Float.floatToIntBits(getMoveFromPosY())
              != java.lang.Float.floatToIntBits(
              other.getMoveFromPosY())) return false;
      if (java.lang.Float.floatToIntBits(getMoveToPosX())
              != java.lang.Float.floatToIntBits(
              other.getMoveToPosX())) return false;
      if (java.lang.Float.floatToIntBits(getMoveToPosY())
              != java.lang.Float.floatToIntBits(
              other.getMoveToPosY())) return false;
      if (getMoveStartTime()
              != other.getMoveStartTime()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + MOVEUSERID_FIELD_NUMBER;
      hash = (53 * hash) + getMoveUserId();
      hash = (37 * hash) + MOVEFROMPOSX_FIELD_NUMBER;
      hash = (53 * hash) + java.lang.Float.floatToIntBits(
              getMoveFromPosX());
      hash = (37 * hash) + MOVEFROMPOSY_FIELD_NUMBER;
      hash = (53 * hash) + java.lang.Float.floatToIntBits(
              getMoveFromPosY());
      hash = (37 * hash) + MOVETOPOSX_FIELD_NUMBER;
      hash = (53 * hash) + java.lang.Float.floatToIntBits(
              getMoveToPosX());
      hash = (37 * hash) + MOVETOPOSY_FIELD_NUMBER;
      hash = (53 * hash) + java.lang.Float.floatToIntBits(
              getMoveToPosY());
      hash = (37 * hash) + MOVESTARTTIME_FIELD_NUMBER;
      hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
              getMoveStartTime());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToResult parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToResult parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToResult parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToResult parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToResult parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToResult parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToResult parseFrom(java.io.InputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToResult parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToResult parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToResult parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToResult parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToResult parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToResult prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }

    /**
     * <pre>
     * 结果
     * </pre>
     * <p>
     * Protobuf type {@code msg.UserMoveToResult}
     */
    public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:msg.UserMoveToResult)
            cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToResultOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
      getDescriptor() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserMoveToResult_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserMoveToResult_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                        cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToResult.class, cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToResult.Builder.class);
      }

      // Construct using cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToResult.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
              com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        moveUserId_ = 0;

        moveFromPosX_ = 0F;

        moveFromPosY_ = 0F;

        moveToPosX_ = 0F;

        moveToPosY_ = 0F;

        moveStartTime_ = 0L;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
      getDescriptorForType() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserMoveToResult_descriptor;
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToResult getDefaultInstanceForType() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToResult.getDefaultInstance();
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToResult build() {
        cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToResult result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToResult buildPartial() {
        cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToResult result = new cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToResult(this);
        result.moveUserId_ = moveUserId_;
        result.moveFromPosX_ = moveFromPosX_;
        result.moveFromPosY_ = moveFromPosY_;
        result.moveToPosX_ = moveToPosX_;
        result.moveToPosY_ = moveToPosY_;
        result.moveStartTime_ = moveStartTime_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }

      @java.lang.Override
      public Builder setField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
        return super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(
              com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(
              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToResult) {
          return mergeFrom((cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToResult) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToResult other) {
        if (other == cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToResult.getDefaultInstance())
          return this;
        if (other.getMoveUserId() != 0) {
          setMoveUserId(other.getMoveUserId());
        }
        if (other.getMoveFromPosX() != 0F) {
          setMoveFromPosX(other.getMoveFromPosX());
        }
        if (other.getMoveFromPosY() != 0F) {
          setMoveFromPosY(other.getMoveFromPosY());
        }
        if (other.getMoveToPosX() != 0F) {
          setMoveToPosX(other.getMoveToPosX());
        }
        if (other.getMoveToPosY() != 0F) {
          setMoveToPosY(other.getMoveToPosY());
        }
        if (other.getMoveStartTime() != 0L) {
          setMoveStartTime(other.getMoveStartTime());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToResult parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToResult) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int moveUserId_;

      /**
       * <pre>
       * 移动用户 Id
       * </pre>
       *
       * <code>uint32 moveUserId = 1;</code>
       *
       * @return The moveUserId.
       */
      public int getMoveUserId() {
        return moveUserId_;
      }

      /**
       * <pre>
       * 移动用户 Id
       * </pre>
       *
       * <code>uint32 moveUserId = 1;</code>
       *
       * @param value The moveUserId to set.
       * @return This builder for chaining.
       */
      public Builder setMoveUserId(int value) {

        moveUserId_ = value;
        onChanged();
        return this;
      }

      /**
       * <pre>
       * 移动用户 Id
       * </pre>
       *
       * <code>uint32 moveUserId = 1;</code>
       *
       * @return This builder for chaining.
       */
      public Builder clearMoveUserId() {

        moveUserId_ = 0;
        onChanged();
        return this;
      }

      private float moveFromPosX_;

      /**
       * <pre>
       * 起始位置 X
       * </pre>
       *
       * <code>float moveFromPosX = 2;</code>
       *
       * @return The moveFromPosX.
       */
      public float getMoveFromPosX() {
        return moveFromPosX_;
      }

      /**
       * <pre>
       * 起始位置 X
       * </pre>
       *
       * <code>float moveFromPosX = 2;</code>
       *
       * @param value The moveFromPosX to set.
       * @return This builder for chaining.
       */
      public Builder setMoveFromPosX(float value) {

        moveFromPosX_ = value;
        onChanged();
        return this;
      }

      /**
       * <pre>
       * 起始位置 X
       * </pre>
       *
       * <code>float moveFromPosX = 2;</code>
       *
       * @return This builder for chaining.
       */
      public Builder clearMoveFromPosX() {

        moveFromPosX_ = 0F;
        onChanged();
        return this;
      }

      private float moveFromPosY_;

      /**
       * <pre>
       * 起始位置 Y
       * </pre>
       *
       * <code>float moveFromPosY = 3;</code>
       *
       * @return The moveFromPosY.
       */
      public float getMoveFromPosY() {
        return moveFromPosY_;
      }

      /**
       * <pre>
       * 起始位置 Y
       * </pre>
       *
       * <code>float moveFromPosY = 3;</code>
       *
       * @param value The moveFromPosY to set.
       * @return This builder for chaining.
       */
      public Builder setMoveFromPosY(float value) {

        moveFromPosY_ = value;
        onChanged();
        return this;
      }

      /**
       * <pre>
       * 起始位置 Y
       * </pre>
       *
       * <code>float moveFromPosY = 3;</code>
       *
       * @return This builder for chaining.
       */
      public Builder clearMoveFromPosY() {

        moveFromPosY_ = 0F;
        onChanged();
        return this;
      }

      private float moveToPosX_;

      /**
       * <pre>
       * 移动到位置 X
       * </pre>
       *
       * <code>float moveToPosX = 4;</code>
       *
       * @return The moveToPosX.
       */
      public float getMoveToPosX() {
        return moveToPosX_;
      }

      /**
       * <pre>
       * 移动到位置 X
       * </pre>
       *
       * <code>float moveToPosX = 4;</code>
       *
       * @param value The moveToPosX to set.
       * @return This builder for chaining.
       */
      public Builder setMoveToPosX(float value) {

        moveToPosX_ = value;
        onChanged();
        return this;
      }

      /**
       * <pre>
       * 移动到位置 X
       * </pre>
       *
       * <code>float moveToPosX = 4;</code>
       *
       * @return This builder for chaining.
       */
      public Builder clearMoveToPosX() {

        moveToPosX_ = 0F;
        onChanged();
        return this;
      }

      private float moveToPosY_;

      /**
       * <pre>
       * 移动到位置 Y
       * </pre>
       *
       * <code>float moveToPosY = 5;</code>
       *
       * @return The moveToPosY.
       */
      public float getMoveToPosY() {
        return moveToPosY_;
      }

      /**
       * <pre>
       * 移动到位置 Y
       * </pre>
       *
       * <code>float moveToPosY = 5;</code>
       *
       * @param value The moveToPosY to set.
       * @return This builder for chaining.
       */
      public Builder setMoveToPosY(float value) {

        moveToPosY_ = value;
        onChanged();
        return this;
      }

      /**
       * <pre>
       * 移动到位置 Y
       * </pre>
       *
       * <code>float moveToPosY = 5;</code>
       *
       * @return This builder for chaining.
       */
      public Builder clearMoveToPosY() {

        moveToPosY_ = 0F;
        onChanged();
        return this;
      }

      private long moveStartTime_;

      /**
       * <pre>
       * 启程时间戳
       * </pre>
       *
       * <code>uint64 moveStartTime = 6;</code>
       *
       * @return The moveStartTime.
       */
      public long getMoveStartTime() {
        return moveStartTime_;
      }

      /**
       * <pre>
       * 启程时间戳
       * </pre>
       *
       * <code>uint64 moveStartTime = 6;</code>
       *
       * @param value The moveStartTime to set.
       * @return This builder for chaining.
       */
      public Builder setMoveStartTime(long value) {

        moveStartTime_ = value;
        onChanged();
        return this;
      }

      /**
       * <pre>
       * 启程时间戳
       * </pre>
       *
       * <code>uint64 moveStartTime = 6;</code>
       *
       * @return This builder for chaining.
       */
      public Builder clearMoveStartTime() {

        moveStartTime_ = 0L;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:msg.UserMoveToResult)
    }

    // @@protoc_insertion_point(class_scope:msg.UserMoveToResult)
    private static final cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToResult DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToResult();
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToResult getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<UserMoveToResult>
            PARSER = new com.google.protobuf.AbstractParser<UserMoveToResult>() {
      @java.lang.Override
      public UserMoveToResult parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return new UserMoveToResult(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<UserMoveToResult> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<UserMoveToResult> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cn.lei.netty.herostory.msg.GameMsgProtocol.UserMoveToResult getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface UserQuitResultOrBuilder extends
          // @@protoc_insertion_point(interface_extends:msg.UserQuitResult)
          com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * 退出用户 Id
     * </pre>
     *
     * <code>uint32 quitUserId = 1;</code>
     *
     * @return The quitUserId.
     */
    int getQuitUserId();
  }

  /**
   * <pre>
   *
   * 用户退场
   * /////////////////////////////////////////////////////////////////////
   *
   * XXX 注意: 用户退场不需要指令, 因为是在断开服务器的时候执行
   *
   * 结果
   * </pre>
   * <p>
   * Protobuf type {@code msg.UserQuitResult}
   */
  public static final class UserQuitResult extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:msg.UserQuitResult)
          UserQuitResultOrBuilder {
    private static final long serialVersionUID = 0L;

    // Use UserQuitResult.newBuilder() to construct.
    private UserQuitResult(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private UserQuitResult() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
      return new UserQuitResult();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }

    private UserQuitResult(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {

              quitUserId_ = input.readUInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                      input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
                e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor
    getDescriptor() {
      return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserQuitResult_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    internalGetFieldAccessorTable() {
      return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserQuitResult_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                      cn.lei.netty.herostory.msg.GameMsgProtocol.UserQuitResult.class, cn.lei.netty.herostory.msg.GameMsgProtocol.UserQuitResult.Builder.class);
    }

    public static final int QUITUSERID_FIELD_NUMBER = 1;
    private int quitUserId_;

    /**
     * <pre>
     * 退出用户 Id
     * </pre>
     *
     * <code>uint32 quitUserId = 1;</code>
     *
     * @return The quitUserId.
     */
    public int getQuitUserId() {
      return quitUserId_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
            throws java.io.IOException {
      if (quitUserId_ != 0) {
        output.writeUInt32(1, quitUserId_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (quitUserId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
                .computeUInt32Size(1, quitUserId_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.UserQuitResult)) {
        return super.equals(obj);
      }
      cn.lei.netty.herostory.msg.GameMsgProtocol.UserQuitResult other = (cn.lei.netty.herostory.msg.GameMsgProtocol.UserQuitResult) obj;

      if (getQuitUserId()
              != other.getQuitUserId()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + QUITUSERID_FIELD_NUMBER;
      hash = (53 * hash) + getQuitUserId();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserQuitResult parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserQuitResult parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserQuitResult parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserQuitResult parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserQuitResult parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserQuitResult parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserQuitResult parseFrom(java.io.InputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserQuitResult parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserQuitResult parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserQuitResult parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserQuitResult parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserQuitResult parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(cn.lei.netty.herostory.msg.GameMsgProtocol.UserQuitResult prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }

    /**
     * <pre>
     *
     * 用户退场
     * /////////////////////////////////////////////////////////////////////
     *
     * XXX 注意: 用户退场不需要指令, 因为是在断开服务器的时候执行
     *
     * 结果
     * </pre>
     * <p>
     * Protobuf type {@code msg.UserQuitResult}
     */
    public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:msg.UserQuitResult)
            cn.lei.netty.herostory.msg.GameMsgProtocol.UserQuitResultOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
      getDescriptor() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserQuitResult_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserQuitResult_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                        cn.lei.netty.herostory.msg.GameMsgProtocol.UserQuitResult.class, cn.lei.netty.herostory.msg.GameMsgProtocol.UserQuitResult.Builder.class);
      }

      // Construct using cn.lei.netty.herostory.msg.GameMsgProtocol.UserQuitResult.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
              com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        quitUserId_ = 0;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
      getDescriptorForType() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserQuitResult_descriptor;
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.UserQuitResult getDefaultInstanceForType() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.UserQuitResult.getDefaultInstance();
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.UserQuitResult build() {
        cn.lei.netty.herostory.msg.GameMsgProtocol.UserQuitResult result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.UserQuitResult buildPartial() {
        cn.lei.netty.herostory.msg.GameMsgProtocol.UserQuitResult result = new cn.lei.netty.herostory.msg.GameMsgProtocol.UserQuitResult(this);
        result.quitUserId_ = quitUserId_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }

      @java.lang.Override
      public Builder setField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
        return super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(
              com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(
              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.UserQuitResult) {
          return mergeFrom((cn.lei.netty.herostory.msg.GameMsgProtocol.UserQuitResult) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cn.lei.netty.herostory.msg.GameMsgProtocol.UserQuitResult other) {
        if (other == cn.lei.netty.herostory.msg.GameMsgProtocol.UserQuitResult.getDefaultInstance())
          return this;
        if (other.getQuitUserId() != 0) {
          setQuitUserId(other.getQuitUserId());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        cn.lei.netty.herostory.msg.GameMsgProtocol.UserQuitResult parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (cn.lei.netty.herostory.msg.GameMsgProtocol.UserQuitResult) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int quitUserId_;

      /**
       * <pre>
       * 退出用户 Id
       * </pre>
       *
       * <code>uint32 quitUserId = 1;</code>
       *
       * @return The quitUserId.
       */
      public int getQuitUserId() {
        return quitUserId_;
      }

      /**
       * <pre>
       * 退出用户 Id
       * </pre>
       *
       * <code>uint32 quitUserId = 1;</code>
       *
       * @param value The quitUserId to set.
       * @return This builder for chaining.
       */
      public Builder setQuitUserId(int value) {

        quitUserId_ = value;
        onChanged();
        return this;
      }

      /**
       * <pre>
       * 退出用户 Id
       * </pre>
       *
       * <code>uint32 quitUserId = 1;</code>
       *
       * @return This builder for chaining.
       */
      public Builder clearQuitUserId() {

        quitUserId_ = 0;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:msg.UserQuitResult)
    }

    // @@protoc_insertion_point(class_scope:msg.UserQuitResult)
    private static final cn.lei.netty.herostory.msg.GameMsgProtocol.UserQuitResult DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new cn.lei.netty.herostory.msg.GameMsgProtocol.UserQuitResult();
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserQuitResult getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<UserQuitResult>
            PARSER = new com.google.protobuf.AbstractParser<UserQuitResult>() {
      @java.lang.Override
      public UserQuitResult parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return new UserQuitResult(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<UserQuitResult> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<UserQuitResult> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cn.lei.netty.herostory.msg.GameMsgProtocol.UserQuitResult getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface UserStopCmdOrBuilder extends
          // @@protoc_insertion_point(interface_extends:msg.UserStopCmd)
          com.google.protobuf.MessageOrBuilder {
  }

  /**
   * <pre>
   * 用户停驻
   * /////////////////////////////////////////////////////////////////////
   * 指令
   * </pre>
   * <p>
   * Protobuf type {@code msg.UserStopCmd}
   */
  public static final class UserStopCmd extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:msg.UserStopCmd)
          UserStopCmdOrBuilder {
    private static final long serialVersionUID = 0L;

    // Use UserStopCmd.newBuilder() to construct.
    private UserStopCmd(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private UserStopCmd() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
      return new UserStopCmd();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }

    private UserStopCmd(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(
                      input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
                e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor
    getDescriptor() {
      return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserStopCmd_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    internalGetFieldAccessorTable() {
      return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserStopCmd_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                      cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopCmd.class, cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopCmd.Builder.class);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
            throws java.io.IOException {
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopCmd)) {
        return super.equals(obj);
      }
      cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopCmd other = (cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopCmd) obj;

      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopCmd parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopCmd parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopCmd parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopCmd parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopCmd parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopCmd parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopCmd parseFrom(java.io.InputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopCmd parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopCmd parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopCmd parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopCmd parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopCmd parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopCmd prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }

    /**
     * <pre>
     * 用户停驻
     * /////////////////////////////////////////////////////////////////////
     * 指令
     * </pre>
     * <p>
     * Protobuf type {@code msg.UserStopCmd}
     */
    public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:msg.UserStopCmd)
            cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopCmdOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
      getDescriptor() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserStopCmd_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserStopCmd_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                        cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopCmd.class, cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopCmd.Builder.class);
      }

      // Construct using cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopCmd.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
              com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
      getDescriptorForType() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserStopCmd_descriptor;
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopCmd getDefaultInstanceForType() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopCmd.getDefaultInstance();
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopCmd build() {
        cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopCmd result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopCmd buildPartial() {
        cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopCmd result = new cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopCmd(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }

      @java.lang.Override
      public Builder setField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
        return super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(
              com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(
              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopCmd) {
          return mergeFrom((cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopCmd) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopCmd other) {
        if (other == cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopCmd.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopCmd parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopCmd) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:msg.UserStopCmd)
    }

    // @@protoc_insertion_point(class_scope:msg.UserStopCmd)
    private static final cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopCmd DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopCmd();
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopCmd getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<UserStopCmd>
            PARSER = new com.google.protobuf.AbstractParser<UserStopCmd>() {
      @java.lang.Override
      public UserStopCmd parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return new UserStopCmd(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<UserStopCmd> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<UserStopCmd> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopCmd getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface UserStopResultOrBuilder extends
          // @@protoc_insertion_point(interface_extends:msg.UserStopResult)
          com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * 停驻用户 Id
     * </pre>
     *
     * <code>uint32 stopUserId = 1;</code>
     *
     * @return The stopUserId.
     */
    int getStopUserId();

    /**
     * <pre>
     * 停驻在位置 X
     * </pre>
     *
     * <code>float stopAtPosX = 2;</code>
     *
     * @return The stopAtPosX.
     */
    float getStopAtPosX();

    /**
     * <pre>
     * 停驻在位置 Y
     * </pre>
     *
     * <code>float stopAtPosY = 3;</code>
     *
     * @return The stopAtPosY.
     */
    float getStopAtPosY();
  }

  /**
   * <pre>
   * 结果
   * </pre>
   * <p>
   * Protobuf type {@code msg.UserStopResult}
   */
  public static final class UserStopResult extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:msg.UserStopResult)
          UserStopResultOrBuilder {
    private static final long serialVersionUID = 0L;

    // Use UserStopResult.newBuilder() to construct.
    private UserStopResult(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private UserStopResult() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
      return new UserStopResult();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }

    private UserStopResult(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {

              stopUserId_ = input.readUInt32();
              break;
            }
            case 21: {

              stopAtPosX_ = input.readFloat();
              break;
            }
            case 29: {

              stopAtPosY_ = input.readFloat();
              break;
            }
            default: {
              if (!parseUnknownField(
                      input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
                e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor
    getDescriptor() {
      return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserStopResult_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    internalGetFieldAccessorTable() {
      return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserStopResult_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                      cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopResult.class, cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopResult.Builder.class);
    }

    public static final int STOPUSERID_FIELD_NUMBER = 1;
    private int stopUserId_;

    /**
     * <pre>
     * 停驻用户 Id
     * </pre>
     *
     * <code>uint32 stopUserId = 1;</code>
     *
     * @return The stopUserId.
     */
    public int getStopUserId() {
      return stopUserId_;
    }

    public static final int STOPATPOSX_FIELD_NUMBER = 2;
    private float stopAtPosX_;

    /**
     * <pre>
     * 停驻在位置 X
     * </pre>
     *
     * <code>float stopAtPosX = 2;</code>
     *
     * @return The stopAtPosX.
     */
    public float getStopAtPosX() {
      return stopAtPosX_;
    }

    public static final int STOPATPOSY_FIELD_NUMBER = 3;
    private float stopAtPosY_;

    /**
     * <pre>
     * 停驻在位置 Y
     * </pre>
     *
     * <code>float stopAtPosY = 3;</code>
     *
     * @return The stopAtPosY.
     */
    public float getStopAtPosY() {
      return stopAtPosY_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
            throws java.io.IOException {
      if (stopUserId_ != 0) {
        output.writeUInt32(1, stopUserId_);
      }
      if (stopAtPosX_ != 0F) {
        output.writeFloat(2, stopAtPosX_);
      }
      if (stopAtPosY_ != 0F) {
        output.writeFloat(3, stopAtPosY_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (stopUserId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
                .computeUInt32Size(1, stopUserId_);
      }
      if (stopAtPosX_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
                .computeFloatSize(2, stopAtPosX_);
      }
      if (stopAtPosY_ != 0F) {
        size += com.google.protobuf.CodedOutputStream
                .computeFloatSize(3, stopAtPosY_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopResult)) {
        return super.equals(obj);
      }
      cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopResult other = (cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopResult) obj;

      if (getStopUserId()
              != other.getStopUserId()) return false;
      if (java.lang.Float.floatToIntBits(getStopAtPosX())
              != java.lang.Float.floatToIntBits(
              other.getStopAtPosX())) return false;
      if (java.lang.Float.floatToIntBits(getStopAtPosY())
              != java.lang.Float.floatToIntBits(
              other.getStopAtPosY())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + STOPUSERID_FIELD_NUMBER;
      hash = (53 * hash) + getStopUserId();
      hash = (37 * hash) + STOPATPOSX_FIELD_NUMBER;
      hash = (53 * hash) + java.lang.Float.floatToIntBits(
              getStopAtPosX());
      hash = (37 * hash) + STOPATPOSY_FIELD_NUMBER;
      hash = (53 * hash) + java.lang.Float.floatToIntBits(
              getStopAtPosY());
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopResult parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopResult parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopResult parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopResult parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopResult parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopResult parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopResult parseFrom(java.io.InputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopResult parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopResult parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopResult parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopResult parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopResult parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopResult prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }

    /**
     * <pre>
     * 结果
     * </pre>
     * <p>
     * Protobuf type {@code msg.UserStopResult}
     */
    public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:msg.UserStopResult)
            cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopResultOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
      getDescriptor() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserStopResult_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserStopResult_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                        cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopResult.class, cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopResult.Builder.class);
      }

      // Construct using cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopResult.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
              com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        stopUserId_ = 0;

        stopAtPosX_ = 0F;

        stopAtPosY_ = 0F;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
      getDescriptorForType() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserStopResult_descriptor;
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopResult getDefaultInstanceForType() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopResult.getDefaultInstance();
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopResult build() {
        cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopResult result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopResult buildPartial() {
        cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopResult result = new cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopResult(this);
        result.stopUserId_ = stopUserId_;
        result.stopAtPosX_ = stopAtPosX_;
        result.stopAtPosY_ = stopAtPosY_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }

      @java.lang.Override
      public Builder setField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
        return super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(
              com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(
              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopResult) {
          return mergeFrom((cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopResult) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopResult other) {
        if (other == cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopResult.getDefaultInstance())
          return this;
        if (other.getStopUserId() != 0) {
          setStopUserId(other.getStopUserId());
        }
        if (other.getStopAtPosX() != 0F) {
          setStopAtPosX(other.getStopAtPosX());
        }
        if (other.getStopAtPosY() != 0F) {
          setStopAtPosY(other.getStopAtPosY());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopResult parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopResult) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int stopUserId_;

      /**
       * <pre>
       * 停驻用户 Id
       * </pre>
       *
       * <code>uint32 stopUserId = 1;</code>
       *
       * @return The stopUserId.
       */
      public int getStopUserId() {
        return stopUserId_;
      }

      /**
       * <pre>
       * 停驻用户 Id
       * </pre>
       *
       * <code>uint32 stopUserId = 1;</code>
       *
       * @param value The stopUserId to set.
       * @return This builder for chaining.
       */
      public Builder setStopUserId(int value) {

        stopUserId_ = value;
        onChanged();
        return this;
      }

      /**
       * <pre>
       * 停驻用户 Id
       * </pre>
       *
       * <code>uint32 stopUserId = 1;</code>
       *
       * @return This builder for chaining.
       */
      public Builder clearStopUserId() {

        stopUserId_ = 0;
        onChanged();
        return this;
      }

      private float stopAtPosX_;

      /**
       * <pre>
       * 停驻在位置 X
       * </pre>
       *
       * <code>float stopAtPosX = 2;</code>
       *
       * @return The stopAtPosX.
       */
      public float getStopAtPosX() {
        return stopAtPosX_;
      }

      /**
       * <pre>
       * 停驻在位置 X
       * </pre>
       *
       * <code>float stopAtPosX = 2;</code>
       *
       * @param value The stopAtPosX to set.
       * @return This builder for chaining.
       */
      public Builder setStopAtPosX(float value) {

        stopAtPosX_ = value;
        onChanged();
        return this;
      }

      /**
       * <pre>
       * 停驻在位置 X
       * </pre>
       *
       * <code>float stopAtPosX = 2;</code>
       *
       * @return This builder for chaining.
       */
      public Builder clearStopAtPosX() {

        stopAtPosX_ = 0F;
        onChanged();
        return this;
      }

      private float stopAtPosY_;

      /**
       * <pre>
       * 停驻在位置 Y
       * </pre>
       *
       * <code>float stopAtPosY = 3;</code>
       *
       * @return The stopAtPosY.
       */
      public float getStopAtPosY() {
        return stopAtPosY_;
      }

      /**
       * <pre>
       * 停驻在位置 Y
       * </pre>
       *
       * <code>float stopAtPosY = 3;</code>
       *
       * @param value The stopAtPosY to set.
       * @return This builder for chaining.
       */
      public Builder setStopAtPosY(float value) {

        stopAtPosY_ = value;
        onChanged();
        return this;
      }

      /**
       * <pre>
       * 停驻在位置 Y
       * </pre>
       *
       * <code>float stopAtPosY = 3;</code>
       *
       * @return This builder for chaining.
       */
      public Builder clearStopAtPosY() {

        stopAtPosY_ = 0F;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:msg.UserStopResult)
    }

    // @@protoc_insertion_point(class_scope:msg.UserStopResult)
    private static final cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopResult DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopResult();
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopResult getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<UserStopResult>
            PARSER = new com.google.protobuf.AbstractParser<UserStopResult>() {
      @java.lang.Override
      public UserStopResult parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return new UserStopResult(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<UserStopResult> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<UserStopResult> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cn.lei.netty.herostory.msg.GameMsgProtocol.UserStopResult getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface UserAttkCmdOrBuilder extends
          // @@protoc_insertion_point(interface_extends:msg.UserAttkCmd)
          com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * 目标用户 Id
     * </pre>
     *
     * <code>uint32 targetUserId = 1;</code>
     *
     * @return The targetUserId.
     */
    int getTargetUserId();
  }

  /**
   * <pre>
   * 用户攻击
   * /////////////////////////////////////////////////////////////////////
   * 指令
   * </pre>
   * <p>
   * Protobuf type {@code msg.UserAttkCmd}
   */
  public static final class UserAttkCmd extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:msg.UserAttkCmd)
          UserAttkCmdOrBuilder {
    private static final long serialVersionUID = 0L;

    // Use UserAttkCmd.newBuilder() to construct.
    private UserAttkCmd(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private UserAttkCmd() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
      return new UserAttkCmd();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }

    private UserAttkCmd(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {

              targetUserId_ = input.readUInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                      input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
                e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor
    getDescriptor() {
      return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserAttkCmd_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    internalGetFieldAccessorTable() {
      return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserAttkCmd_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                      cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkCmd.class, cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkCmd.Builder.class);
    }

    public static final int TARGETUSERID_FIELD_NUMBER = 1;
    private int targetUserId_;

    /**
     * <pre>
     * 目标用户 Id
     * </pre>
     *
     * <code>uint32 targetUserId = 1;</code>
     *
     * @return The targetUserId.
     */
    public int getTargetUserId() {
      return targetUserId_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
            throws java.io.IOException {
      if (targetUserId_ != 0) {
        output.writeUInt32(1, targetUserId_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (targetUserId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
                .computeUInt32Size(1, targetUserId_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkCmd)) {
        return super.equals(obj);
      }
      cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkCmd other = (cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkCmd) obj;

      if (getTargetUserId()
              != other.getTargetUserId()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + TARGETUSERID_FIELD_NUMBER;
      hash = (53 * hash) + getTargetUserId();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkCmd parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkCmd parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkCmd parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkCmd parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkCmd parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkCmd parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkCmd parseFrom(java.io.InputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkCmd parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkCmd parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkCmd parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkCmd parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkCmd parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkCmd prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }

    /**
     * <pre>
     * 用户攻击
     * /////////////////////////////////////////////////////////////////////
     * 指令
     * </pre>
     * <p>
     * Protobuf type {@code msg.UserAttkCmd}
     */
    public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:msg.UserAttkCmd)
            cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkCmdOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
      getDescriptor() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserAttkCmd_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserAttkCmd_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                        cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkCmd.class, cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkCmd.Builder.class);
      }

      // Construct using cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkCmd.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
              com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        targetUserId_ = 0;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
      getDescriptorForType() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserAttkCmd_descriptor;
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkCmd getDefaultInstanceForType() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkCmd.getDefaultInstance();
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkCmd build() {
        cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkCmd result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkCmd buildPartial() {
        cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkCmd result = new cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkCmd(this);
        result.targetUserId_ = targetUserId_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }

      @java.lang.Override
      public Builder setField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
        return super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(
              com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(
              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkCmd) {
          return mergeFrom((cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkCmd) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkCmd other) {
        if (other == cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkCmd.getDefaultInstance()) return this;
        if (other.getTargetUserId() != 0) {
          setTargetUserId(other.getTargetUserId());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkCmd parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkCmd) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int targetUserId_;

      /**
       * <pre>
       * 目标用户 Id
       * </pre>
       *
       * <code>uint32 targetUserId = 1;</code>
       *
       * @return The targetUserId.
       */
      public int getTargetUserId() {
        return targetUserId_;
      }

      /**
       * <pre>
       * 目标用户 Id
       * </pre>
       *
       * <code>uint32 targetUserId = 1;</code>
       *
       * @param value The targetUserId to set.
       * @return This builder for chaining.
       */
      public Builder setTargetUserId(int value) {

        targetUserId_ = value;
        onChanged();
        return this;
      }

      /**
       * <pre>
       * 目标用户 Id
       * </pre>
       *
       * <code>uint32 targetUserId = 1;</code>
       *
       * @return This builder for chaining.
       */
      public Builder clearTargetUserId() {

        targetUserId_ = 0;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:msg.UserAttkCmd)
    }

    // @@protoc_insertion_point(class_scope:msg.UserAttkCmd)
    private static final cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkCmd DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkCmd();
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkCmd getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<UserAttkCmd>
            PARSER = new com.google.protobuf.AbstractParser<UserAttkCmd>() {
      @java.lang.Override
      public UserAttkCmd parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return new UserAttkCmd(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<UserAttkCmd> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<UserAttkCmd> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkCmd getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface UserAttkResultOrBuilder extends
          // @@protoc_insertion_point(interface_extends:msg.UserAttkResult)
          com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * 发动攻击的用户 Id
     * </pre>
     *
     * <code>uint32 attkUserId = 1;</code>
     *
     * @return The attkUserId.
     */
    int getAttkUserId();

    /**
     * <pre>
     * 目标用户 Id
     * </pre>
     *
     * <code>uint32 targetUserId = 2;</code>
     *
     * @return The targetUserId.
     */
    int getTargetUserId();
  }

  /**
   * <pre>
   * 结果
   * </pre>
   * <p>
   * Protobuf type {@code msg.UserAttkResult}
   */
  public static final class UserAttkResult extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:msg.UserAttkResult)
          UserAttkResultOrBuilder {
    private static final long serialVersionUID = 0L;

    // Use UserAttkResult.newBuilder() to construct.
    private UserAttkResult(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private UserAttkResult() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
      return new UserAttkResult();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }

    private UserAttkResult(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {

              attkUserId_ = input.readUInt32();
              break;
            }
            case 16: {

              targetUserId_ = input.readUInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                      input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
                e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor
    getDescriptor() {
      return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserAttkResult_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    internalGetFieldAccessorTable() {
      return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserAttkResult_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                      cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkResult.class, cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkResult.Builder.class);
    }

    public static final int ATTKUSERID_FIELD_NUMBER = 1;
    private int attkUserId_;

    /**
     * <pre>
     * 发动攻击的用户 Id
     * </pre>
     *
     * <code>uint32 attkUserId = 1;</code>
     *
     * @return The attkUserId.
     */
    public int getAttkUserId() {
      return attkUserId_;
    }

    public static final int TARGETUSERID_FIELD_NUMBER = 2;
    private int targetUserId_;

    /**
     * <pre>
     * 目标用户 Id
     * </pre>
     *
     * <code>uint32 targetUserId = 2;</code>
     *
     * @return The targetUserId.
     */
    public int getTargetUserId() {
      return targetUserId_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
            throws java.io.IOException {
      if (attkUserId_ != 0) {
        output.writeUInt32(1, attkUserId_);
      }
      if (targetUserId_ != 0) {
        output.writeUInt32(2, targetUserId_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (attkUserId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
                .computeUInt32Size(1, attkUserId_);
      }
      if (targetUserId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
                .computeUInt32Size(2, targetUserId_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkResult)) {
        return super.equals(obj);
      }
      cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkResult other = (cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkResult) obj;

      if (getAttkUserId()
              != other.getAttkUserId()) return false;
      if (getTargetUserId()
              != other.getTargetUserId()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + ATTKUSERID_FIELD_NUMBER;
      hash = (53 * hash) + getAttkUserId();
      hash = (37 * hash) + TARGETUSERID_FIELD_NUMBER;
      hash = (53 * hash) + getTargetUserId();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkResult parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkResult parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkResult parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkResult parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkResult parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkResult parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkResult parseFrom(java.io.InputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkResult parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkResult parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkResult parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkResult parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkResult parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkResult prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }

    /**
     * <pre>
     * 结果
     * </pre>
     * <p>
     * Protobuf type {@code msg.UserAttkResult}
     */
    public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:msg.UserAttkResult)
            cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkResultOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
      getDescriptor() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserAttkResult_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserAttkResult_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                        cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkResult.class, cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkResult.Builder.class);
      }

      // Construct using cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkResult.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
              com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        attkUserId_ = 0;

        targetUserId_ = 0;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
      getDescriptorForType() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserAttkResult_descriptor;
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkResult getDefaultInstanceForType() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkResult.getDefaultInstance();
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkResult build() {
        cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkResult result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkResult buildPartial() {
        cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkResult result = new cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkResult(this);
        result.attkUserId_ = attkUserId_;
        result.targetUserId_ = targetUserId_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }

      @java.lang.Override
      public Builder setField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
        return super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(
              com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(
              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkResult) {
          return mergeFrom((cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkResult) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkResult other) {
        if (other == cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkResult.getDefaultInstance())
          return this;
        if (other.getAttkUserId() != 0) {
          setAttkUserId(other.getAttkUserId());
        }
        if (other.getTargetUserId() != 0) {
          setTargetUserId(other.getTargetUserId());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkResult parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkResult) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int attkUserId_;

      /**
       * <pre>
       * 发动攻击的用户 Id
       * </pre>
       *
       * <code>uint32 attkUserId = 1;</code>
       *
       * @return The attkUserId.
       */
      public int getAttkUserId() {
        return attkUserId_;
      }

      /**
       * <pre>
       * 发动攻击的用户 Id
       * </pre>
       *
       * <code>uint32 attkUserId = 1;</code>
       *
       * @param value The attkUserId to set.
       * @return This builder for chaining.
       */
      public Builder setAttkUserId(int value) {

        attkUserId_ = value;
        onChanged();
        return this;
      }

      /**
       * <pre>
       * 发动攻击的用户 Id
       * </pre>
       *
       * <code>uint32 attkUserId = 1;</code>
       *
       * @return This builder for chaining.
       */
      public Builder clearAttkUserId() {

        attkUserId_ = 0;
        onChanged();
        return this;
      }

      private int targetUserId_;

      /**
       * <pre>
       * 目标用户 Id
       * </pre>
       *
       * <code>uint32 targetUserId = 2;</code>
       *
       * @return The targetUserId.
       */
      public int getTargetUserId() {
        return targetUserId_;
      }

      /**
       * <pre>
       * 目标用户 Id
       * </pre>
       *
       * <code>uint32 targetUserId = 2;</code>
       *
       * @param value The targetUserId to set.
       * @return This builder for chaining.
       */
      public Builder setTargetUserId(int value) {

        targetUserId_ = value;
        onChanged();
        return this;
      }

      /**
       * <pre>
       * 目标用户 Id
       * </pre>
       *
       * <code>uint32 targetUserId = 2;</code>
       *
       * @return This builder for chaining.
       */
      public Builder clearTargetUserId() {

        targetUserId_ = 0;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:msg.UserAttkResult)
    }

    // @@protoc_insertion_point(class_scope:msg.UserAttkResult)
    private static final cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkResult DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkResult();
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkResult getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<UserAttkResult>
            PARSER = new com.google.protobuf.AbstractParser<UserAttkResult>() {
      @java.lang.Override
      public UserAttkResult parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return new UserAttkResult(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<UserAttkResult> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<UserAttkResult> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cn.lei.netty.herostory.msg.GameMsgProtocol.UserAttkResult getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface UserSubtractHpResultOrBuilder extends
          // @@protoc_insertion_point(interface_extends:msg.UserSubtractHpResult)
          com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * 目标用户 Id
     * </pre>
     *
     * <code>uint32 targetUserId = 1;</code>
     *
     * @return The targetUserId.
     */
    int getTargetUserId();

    /**
     * <pre>
     * 减血量
     * </pre>
     *
     * <code>uint32 subtractHp = 2;</code>
     *
     * @return The subtractHp.
     */
    int getSubtractHp();
  }

  /**
   * <pre>
   * 用户减血结果
   * </pre>
   * <p>
   * Protobuf type {@code msg.UserSubtractHpResult}
   */
  public static final class UserSubtractHpResult extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:msg.UserSubtractHpResult)
          UserSubtractHpResultOrBuilder {
    private static final long serialVersionUID = 0L;

    // Use UserSubtractHpResult.newBuilder() to construct.
    private UserSubtractHpResult(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private UserSubtractHpResult() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
      return new UserSubtractHpResult();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }

    private UserSubtractHpResult(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {

              targetUserId_ = input.readUInt32();
              break;
            }
            case 16: {

              subtractHp_ = input.readUInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                      input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
                e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor
    getDescriptor() {
      return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserSubtractHpResult_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    internalGetFieldAccessorTable() {
      return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserSubtractHpResult_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                      cn.lei.netty.herostory.msg.GameMsgProtocol.UserSubtractHpResult.class, cn.lei.netty.herostory.msg.GameMsgProtocol.UserSubtractHpResult.Builder.class);
    }

    public static final int TARGETUSERID_FIELD_NUMBER = 1;
    private int targetUserId_;

    /**
     * <pre>
     * 目标用户 Id
     * </pre>
     *
     * <code>uint32 targetUserId = 1;</code>
     *
     * @return The targetUserId.
     */
    public int getTargetUserId() {
      return targetUserId_;
    }

    public static final int SUBTRACTHP_FIELD_NUMBER = 2;
    private int subtractHp_;

    /**
     * <pre>
     * 减血量
     * </pre>
     *
     * <code>uint32 subtractHp = 2;</code>
     *
     * @return The subtractHp.
     */
    public int getSubtractHp() {
      return subtractHp_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
            throws java.io.IOException {
      if (targetUserId_ != 0) {
        output.writeUInt32(1, targetUserId_);
      }
      if (subtractHp_ != 0) {
        output.writeUInt32(2, subtractHp_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (targetUserId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
                .computeUInt32Size(1, targetUserId_);
      }
      if (subtractHp_ != 0) {
        size += com.google.protobuf.CodedOutputStream
                .computeUInt32Size(2, subtractHp_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.UserSubtractHpResult)) {
        return super.equals(obj);
      }
      cn.lei.netty.herostory.msg.GameMsgProtocol.UserSubtractHpResult other = (cn.lei.netty.herostory.msg.GameMsgProtocol.UserSubtractHpResult) obj;

      if (getTargetUserId()
              != other.getTargetUserId()) return false;
      if (getSubtractHp()
              != other.getSubtractHp()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + TARGETUSERID_FIELD_NUMBER;
      hash = (53 * hash) + getTargetUserId();
      hash = (37 * hash) + SUBTRACTHP_FIELD_NUMBER;
      hash = (53 * hash) + getSubtractHp();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserSubtractHpResult parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserSubtractHpResult parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserSubtractHpResult parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserSubtractHpResult parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserSubtractHpResult parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserSubtractHpResult parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserSubtractHpResult parseFrom(java.io.InputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserSubtractHpResult parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserSubtractHpResult parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserSubtractHpResult parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserSubtractHpResult parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserSubtractHpResult parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(cn.lei.netty.herostory.msg.GameMsgProtocol.UserSubtractHpResult prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }

    /**
     * <pre>
     * 用户减血结果
     * </pre>
     * <p>
     * Protobuf type {@code msg.UserSubtractHpResult}
     */
    public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:msg.UserSubtractHpResult)
            cn.lei.netty.herostory.msg.GameMsgProtocol.UserSubtractHpResultOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
      getDescriptor() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserSubtractHpResult_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserSubtractHpResult_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                        cn.lei.netty.herostory.msg.GameMsgProtocol.UserSubtractHpResult.class, cn.lei.netty.herostory.msg.GameMsgProtocol.UserSubtractHpResult.Builder.class);
      }

      // Construct using cn.lei.netty.herostory.msg.GameMsgProtocol.UserSubtractHpResult.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
              com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        targetUserId_ = 0;

        subtractHp_ = 0;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
      getDescriptorForType() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserSubtractHpResult_descriptor;
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.UserSubtractHpResult getDefaultInstanceForType() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.UserSubtractHpResult.getDefaultInstance();
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.UserSubtractHpResult build() {
        cn.lei.netty.herostory.msg.GameMsgProtocol.UserSubtractHpResult result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.UserSubtractHpResult buildPartial() {
        cn.lei.netty.herostory.msg.GameMsgProtocol.UserSubtractHpResult result = new cn.lei.netty.herostory.msg.GameMsgProtocol.UserSubtractHpResult(this);
        result.targetUserId_ = targetUserId_;
        result.subtractHp_ = subtractHp_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }

      @java.lang.Override
      public Builder setField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
        return super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(
              com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(
              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.UserSubtractHpResult) {
          return mergeFrom((cn.lei.netty.herostory.msg.GameMsgProtocol.UserSubtractHpResult) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cn.lei.netty.herostory.msg.GameMsgProtocol.UserSubtractHpResult other) {
        if (other == cn.lei.netty.herostory.msg.GameMsgProtocol.UserSubtractHpResult.getDefaultInstance())
          return this;
        if (other.getTargetUserId() != 0) {
          setTargetUserId(other.getTargetUserId());
        }
        if (other.getSubtractHp() != 0) {
          setSubtractHp(other.getSubtractHp());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        cn.lei.netty.herostory.msg.GameMsgProtocol.UserSubtractHpResult parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (cn.lei.netty.herostory.msg.GameMsgProtocol.UserSubtractHpResult) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int targetUserId_;

      /**
       * <pre>
       * 目标用户 Id
       * </pre>
       *
       * <code>uint32 targetUserId = 1;</code>
       *
       * @return The targetUserId.
       */
      public int getTargetUserId() {
        return targetUserId_;
      }

      /**
       * <pre>
       * 目标用户 Id
       * </pre>
       *
       * <code>uint32 targetUserId = 1;</code>
       *
       * @param value The targetUserId to set.
       * @return This builder for chaining.
       */
      public Builder setTargetUserId(int value) {

        targetUserId_ = value;
        onChanged();
        return this;
      }

      /**
       * <pre>
       * 目标用户 Id
       * </pre>
       *
       * <code>uint32 targetUserId = 1;</code>
       *
       * @return This builder for chaining.
       */
      public Builder clearTargetUserId() {

        targetUserId_ = 0;
        onChanged();
        return this;
      }

      private int subtractHp_;

      /**
       * <pre>
       * 减血量
       * </pre>
       *
       * <code>uint32 subtractHp = 2;</code>
       *
       * @return The subtractHp.
       */
      public int getSubtractHp() {
        return subtractHp_;
      }

      /**
       * <pre>
       * 减血量
       * </pre>
       *
       * <code>uint32 subtractHp = 2;</code>
       *
       * @param value The subtractHp to set.
       * @return This builder for chaining.
       */
      public Builder setSubtractHp(int value) {

        subtractHp_ = value;
        onChanged();
        return this;
      }

      /**
       * <pre>
       * 减血量
       * </pre>
       *
       * <code>uint32 subtractHp = 2;</code>
       *
       * @return This builder for chaining.
       */
      public Builder clearSubtractHp() {

        subtractHp_ = 0;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:msg.UserSubtractHpResult)
    }

    // @@protoc_insertion_point(class_scope:msg.UserSubtractHpResult)
    private static final cn.lei.netty.herostory.msg.GameMsgProtocol.UserSubtractHpResult DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new cn.lei.netty.herostory.msg.GameMsgProtocol.UserSubtractHpResult();
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserSubtractHpResult getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<UserSubtractHpResult>
            PARSER = new com.google.protobuf.AbstractParser<UserSubtractHpResult>() {
      @java.lang.Override
      public UserSubtractHpResult parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return new UserSubtractHpResult(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<UserSubtractHpResult> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<UserSubtractHpResult> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cn.lei.netty.herostory.msg.GameMsgProtocol.UserSubtractHpResult getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface UserDieResultOrBuilder extends
          // @@protoc_insertion_point(interface_extends:msg.UserDieResult)
          com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * 目标用户 Id
     * </pre>
     *
     * <code>uint32 targetUserId = 1;</code>
     *
     * @return The targetUserId.
     */
    int getTargetUserId();
  }

  /**
   * <pre>
   * 死亡结果
   * </pre>
   * <p>
   * Protobuf type {@code msg.UserDieResult}
   */
  public static final class UserDieResult extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:msg.UserDieResult)
          UserDieResultOrBuilder {
    private static final long serialVersionUID = 0L;

    // Use UserDieResult.newBuilder() to construct.
    private UserDieResult(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private UserDieResult() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
      return new UserDieResult();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }

    private UserDieResult(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {

              targetUserId_ = input.readUInt32();
              break;
            }
            default: {
              if (!parseUnknownField(
                      input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
                e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor
    getDescriptor() {
      return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserDieResult_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    internalGetFieldAccessorTable() {
      return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserDieResult_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                      cn.lei.netty.herostory.msg.GameMsgProtocol.UserDieResult.class, cn.lei.netty.herostory.msg.GameMsgProtocol.UserDieResult.Builder.class);
    }

    public static final int TARGETUSERID_FIELD_NUMBER = 1;
    private int targetUserId_;

    /**
     * <pre>
     * 目标用户 Id
     * </pre>
     *
     * <code>uint32 targetUserId = 1;</code>
     *
     * @return The targetUserId.
     */
    public int getTargetUserId() {
      return targetUserId_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
            throws java.io.IOException {
      if (targetUserId_ != 0) {
        output.writeUInt32(1, targetUserId_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (targetUserId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
                .computeUInt32Size(1, targetUserId_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.UserDieResult)) {
        return super.equals(obj);
      }
      cn.lei.netty.herostory.msg.GameMsgProtocol.UserDieResult other = (cn.lei.netty.herostory.msg.GameMsgProtocol.UserDieResult) obj;

      if (getTargetUserId()
              != other.getTargetUserId()) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + TARGETUSERID_FIELD_NUMBER;
      hash = (53 * hash) + getTargetUserId();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserDieResult parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserDieResult parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserDieResult parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserDieResult parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserDieResult parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserDieResult parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserDieResult parseFrom(java.io.InputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserDieResult parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserDieResult parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserDieResult parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserDieResult parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserDieResult parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(cn.lei.netty.herostory.msg.GameMsgProtocol.UserDieResult prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }

    /**
     * <pre>
     * 死亡结果
     * </pre>
     * <p>
     * Protobuf type {@code msg.UserDieResult}
     */
    public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:msg.UserDieResult)
            cn.lei.netty.herostory.msg.GameMsgProtocol.UserDieResultOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
      getDescriptor() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserDieResult_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserDieResult_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                        cn.lei.netty.herostory.msg.GameMsgProtocol.UserDieResult.class, cn.lei.netty.herostory.msg.GameMsgProtocol.UserDieResult.Builder.class);
      }

      // Construct using cn.lei.netty.herostory.msg.GameMsgProtocol.UserDieResult.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
              com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        targetUserId_ = 0;

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
      getDescriptorForType() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserDieResult_descriptor;
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.UserDieResult getDefaultInstanceForType() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.UserDieResult.getDefaultInstance();
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.UserDieResult build() {
        cn.lei.netty.herostory.msg.GameMsgProtocol.UserDieResult result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.UserDieResult buildPartial() {
        cn.lei.netty.herostory.msg.GameMsgProtocol.UserDieResult result = new cn.lei.netty.herostory.msg.GameMsgProtocol.UserDieResult(this);
        result.targetUserId_ = targetUserId_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }

      @java.lang.Override
      public Builder setField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
        return super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(
              com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(
              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.UserDieResult) {
          return mergeFrom((cn.lei.netty.herostory.msg.GameMsgProtocol.UserDieResult) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cn.lei.netty.herostory.msg.GameMsgProtocol.UserDieResult other) {
        if (other == cn.lei.netty.herostory.msg.GameMsgProtocol.UserDieResult.getDefaultInstance()) return this;
        if (other.getTargetUserId() != 0) {
          setTargetUserId(other.getTargetUserId());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        cn.lei.netty.herostory.msg.GameMsgProtocol.UserDieResult parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (cn.lei.netty.herostory.msg.GameMsgProtocol.UserDieResult) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int targetUserId_;

      /**
       * <pre>
       * 目标用户 Id
       * </pre>
       *
       * <code>uint32 targetUserId = 1;</code>
       *
       * @return The targetUserId.
       */
      public int getTargetUserId() {
        return targetUserId_;
      }

      /**
       * <pre>
       * 目标用户 Id
       * </pre>
       *
       * <code>uint32 targetUserId = 1;</code>
       *
       * @param value The targetUserId to set.
       * @return This builder for chaining.
       */
      public Builder setTargetUserId(int value) {

        targetUserId_ = value;
        onChanged();
        return this;
      }

      /**
       * <pre>
       * 目标用户 Id
       * </pre>
       *
       * <code>uint32 targetUserId = 1;</code>
       *
       * @return This builder for chaining.
       */
      public Builder clearTargetUserId() {

        targetUserId_ = 0;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:msg.UserDieResult)
    }

    // @@protoc_insertion_point(class_scope:msg.UserDieResult)
    private static final cn.lei.netty.herostory.msg.GameMsgProtocol.UserDieResult DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new cn.lei.netty.herostory.msg.GameMsgProtocol.UserDieResult();
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserDieResult getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<UserDieResult>
            PARSER = new com.google.protobuf.AbstractParser<UserDieResult>() {
      @java.lang.Override
      public UserDieResult parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return new UserDieResult(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<UserDieResult> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<UserDieResult> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cn.lei.netty.herostory.msg.GameMsgProtocol.UserDieResult getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface UserLoginCmdOrBuilder extends
          // @@protoc_insertion_point(interface_extends:msg.UserLoginCmd)
          com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * 用户名称
     * </pre>
     *
     * <code>string userName = 1;</code>
     *
     * @return The userName.
     */
    java.lang.String getUserName();

    /**
     * <pre>
     * 用户名称
     * </pre>
     *
     * <code>string userName = 1;</code>
     *
     * @return The bytes for userName.
     */
    com.google.protobuf.ByteString
    getUserNameBytes();

    /**
     * <pre>
     * 用户密码
     * </pre>
     *
     * <code>string password = 2;</code>
     *
     * @return The password.
     */
    java.lang.String getPassword();

    /**
     * <pre>
     * 用户密码
     * </pre>
     *
     * <code>string password = 2;</code>
     *
     * @return The bytes for password.
     */
    com.google.protobuf.ByteString
    getPasswordBytes();
  }

  /**
   * <pre>
   * 用户登录
   * /////////////////////////////////////////////////////////////////////
   * 指令
   * </pre>
   * <p>
   * Protobuf type {@code msg.UserLoginCmd}
   */
  public static final class UserLoginCmd extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:msg.UserLoginCmd)
          UserLoginCmdOrBuilder {
    private static final long serialVersionUID = 0L;

    // Use UserLoginCmd.newBuilder() to construct.
    private UserLoginCmd(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private UserLoginCmd() {
      userName_ = "";
      password_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
      return new UserLoginCmd();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }

    private UserLoginCmd(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();

              userName_ = s;
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();

              password_ = s;
              break;
            }
            default: {
              if (!parseUnknownField(
                      input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
                e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor
    getDescriptor() {
      return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserLoginCmd_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    internalGetFieldAccessorTable() {
      return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserLoginCmd_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                      cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginCmd.class, cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginCmd.Builder.class);
    }

    public static final int USERNAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object userName_;

    /**
     * <pre>
     * 用户名称
     * </pre>
     *
     * <code>string userName = 1;</code>
     *
     * @return The userName.
     */
    public java.lang.String getUserName() {
      java.lang.Object ref = userName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        userName_ = s;
        return s;
      }
    }

    /**
     * <pre>
     * 用户名称
     * </pre>
     *
     * <code>string userName = 1;</code>
     *
     * @return The bytes for userName.
     */
    public com.google.protobuf.ByteString
    getUserNameBytes() {
      java.lang.Object ref = userName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
                com.google.protobuf.ByteString.copyFromUtf8(
                        (java.lang.String) ref);
        userName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PASSWORD_FIELD_NUMBER = 2;
    private volatile java.lang.Object password_;

    /**
     * <pre>
     * 用户密码
     * </pre>
     *
     * <code>string password = 2;</code>
     *
     * @return The password.
     */
    public java.lang.String getPassword() {
      java.lang.Object ref = password_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        password_ = s;
        return s;
      }
    }

    /**
     * <pre>
     * 用户密码
     * </pre>
     *
     * <code>string password = 2;</code>
     *
     * @return The bytes for password.
     */
    public com.google.protobuf.ByteString
    getPasswordBytes() {
      java.lang.Object ref = password_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
                com.google.protobuf.ByteString.copyFromUtf8(
                        (java.lang.String) ref);
        password_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
            throws java.io.IOException {
      if (!getUserNameBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, userName_);
      }
      if (!getPasswordBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, password_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!getUserNameBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, userName_);
      }
      if (!getPasswordBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, password_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginCmd)) {
        return super.equals(obj);
      }
      cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginCmd other = (cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginCmd) obj;

      if (!getUserName()
              .equals(other.getUserName())) return false;
      if (!getPassword()
              .equals(other.getPassword())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + USERNAME_FIELD_NUMBER;
      hash = (53 * hash) + getUserName().hashCode();
      hash = (37 * hash) + PASSWORD_FIELD_NUMBER;
      hash = (53 * hash) + getPassword().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginCmd parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginCmd parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginCmd parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginCmd parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginCmd parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginCmd parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginCmd parseFrom(java.io.InputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginCmd parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginCmd parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginCmd parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginCmd parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginCmd parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginCmd prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }

    /**
     * <pre>
     * 用户登录
     * /////////////////////////////////////////////////////////////////////
     * 指令
     * </pre>
     * <p>
     * Protobuf type {@code msg.UserLoginCmd}
     */
    public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:msg.UserLoginCmd)
            cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginCmdOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
      getDescriptor() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserLoginCmd_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserLoginCmd_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                        cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginCmd.class, cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginCmd.Builder.class);
      }

      // Construct using cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginCmd.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
              com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        userName_ = "";

        password_ = "";

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
      getDescriptorForType() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserLoginCmd_descriptor;
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginCmd getDefaultInstanceForType() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginCmd.getDefaultInstance();
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginCmd build() {
        cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginCmd result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginCmd buildPartial() {
        cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginCmd result = new cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginCmd(this);
        result.userName_ = userName_;
        result.password_ = password_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }

      @java.lang.Override
      public Builder setField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
        return super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(
              com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(
              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginCmd) {
          return mergeFrom((cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginCmd) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginCmd other) {
        if (other == cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginCmd.getDefaultInstance()) return this;
        if (!other.getUserName().isEmpty()) {
          userName_ = other.userName_;
          onChanged();
        }
        if (!other.getPassword().isEmpty()) {
          password_ = other.password_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginCmd parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginCmd) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private java.lang.Object userName_ = "";

      /**
       * <pre>
       * 用户名称
       * </pre>
       *
       * <code>string userName = 1;</code>
       *
       * @return The userName.
       */
      public java.lang.String getUserName() {
        java.lang.Object ref = userName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
                  (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          userName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }

      /**
       * <pre>
       * 用户名称
       * </pre>
       *
       * <code>string userName = 1;</code>
       *
       * @return The bytes for userName.
       */
      public com.google.protobuf.ByteString
      getUserNameBytes() {
        java.lang.Object ref = userName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
                  com.google.protobuf.ByteString.copyFromUtf8(
                          (java.lang.String) ref);
          userName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      /**
       * <pre>
       * 用户名称
       * </pre>
       *
       * <code>string userName = 1;</code>
       *
       * @param value The userName to set.
       * @return This builder for chaining.
       */
      public Builder setUserName(
              java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }

        userName_ = value;
        onChanged();
        return this;
      }

      /**
       * <pre>
       * 用户名称
       * </pre>
       *
       * <code>string userName = 1;</code>
       *
       * @return This builder for chaining.
       */
      public Builder clearUserName() {

        userName_ = getDefaultInstance().getUserName();
        onChanged();
        return this;
      }

      /**
       * <pre>
       * 用户名称
       * </pre>
       *
       * <code>string userName = 1;</code>
       *
       * @param value The bytes for userName to set.
       * @return This builder for chaining.
       */
      public Builder setUserNameBytes(
              com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        checkByteStringIsUtf8(value);

        userName_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object password_ = "";

      /**
       * <pre>
       * 用户密码
       * </pre>
       *
       * <code>string password = 2;</code>
       *
       * @return The password.
       */
      public java.lang.String getPassword() {
        java.lang.Object ref = password_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
                  (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          password_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }

      /**
       * <pre>
       * 用户密码
       * </pre>
       *
       * <code>string password = 2;</code>
       *
       * @return The bytes for password.
       */
      public com.google.protobuf.ByteString
      getPasswordBytes() {
        java.lang.Object ref = password_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
                  com.google.protobuf.ByteString.copyFromUtf8(
                          (java.lang.String) ref);
          password_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      /**
       * <pre>
       * 用户密码
       * </pre>
       *
       * <code>string password = 2;</code>
       *
       * @param value The password to set.
       * @return This builder for chaining.
       */
      public Builder setPassword(
              java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }

        password_ = value;
        onChanged();
        return this;
      }

      /**
       * <pre>
       * 用户密码
       * </pre>
       *
       * <code>string password = 2;</code>
       *
       * @return This builder for chaining.
       */
      public Builder clearPassword() {

        password_ = getDefaultInstance().getPassword();
        onChanged();
        return this;
      }

      /**
       * <pre>
       * 用户密码
       * </pre>
       *
       * <code>string password = 2;</code>
       *
       * @param value The bytes for password to set.
       * @return This builder for chaining.
       */
      public Builder setPasswordBytes(
              com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        checkByteStringIsUtf8(value);

        password_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:msg.UserLoginCmd)
    }

    // @@protoc_insertion_point(class_scope:msg.UserLoginCmd)
    private static final cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginCmd DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginCmd();
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginCmd getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<UserLoginCmd>
            PARSER = new com.google.protobuf.AbstractParser<UserLoginCmd>() {
      @java.lang.Override
      public UserLoginCmd parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return new UserLoginCmd(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<UserLoginCmd> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<UserLoginCmd> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginCmd getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface UserLoginResultOrBuilder extends
          // @@protoc_insertion_point(interface_extends:msg.UserLoginResult)
          com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * 用户 Id,
     * 如果是 -1 则说明登录失败
     * </pre>
     *
     * <code>uint32 userId = 1;</code>
     *
     * @return The userId.
     */
    int getUserId();

    /**
     * <pre>
     * 用户名称
     * </pre>
     *
     * <code>string userName = 2;</code>
     *
     * @return The userName.
     */
    java.lang.String getUserName();

    /**
     * <pre>
     * 用户名称
     * </pre>
     *
     * <code>string userName = 2;</code>
     *
     * @return The bytes for userName.
     */
    com.google.protobuf.ByteString
    getUserNameBytes();

    /**
     * <pre>
     * 英雄形象
     * </pre>
     *
     * <code>string heroAvatar = 3;</code>
     *
     * @return The heroAvatar.
     */
    java.lang.String getHeroAvatar();

    /**
     * <pre>
     * 英雄形象
     * </pre>
     *
     * <code>string heroAvatar = 3;</code>
     *
     * @return The bytes for heroAvatar.
     */
    com.google.protobuf.ByteString
    getHeroAvatarBytes();
  }

  /**
   * <pre>
   * 结果
   * </pre>
   * <p>
   * Protobuf type {@code msg.UserLoginResult}
   */
  public static final class UserLoginResult extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:msg.UserLoginResult)
          UserLoginResultOrBuilder {
    private static final long serialVersionUID = 0L;

    // Use UserLoginResult.newBuilder() to construct.
    private UserLoginResult(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private UserLoginResult() {
      userName_ = "";
      heroAvatar_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
      return new UserLoginResult();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }

    private UserLoginResult(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {

              userId_ = input.readUInt32();
              break;
            }
            case 18: {
              java.lang.String s = input.readStringRequireUtf8();

              userName_ = s;
              break;
            }
            case 26: {
              java.lang.String s = input.readStringRequireUtf8();

              heroAvatar_ = s;
              break;
            }
            default: {
              if (!parseUnknownField(
                      input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
                e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor
    getDescriptor() {
      return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserLoginResult_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    internalGetFieldAccessorTable() {
      return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserLoginResult_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                      cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginResult.class, cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginResult.Builder.class);
    }

    public static final int USERID_FIELD_NUMBER = 1;
    private int userId_;

    /**
     * <pre>
     * 用户 Id,
     * 如果是 -1 则说明登录失败
     * </pre>
     *
     * <code>uint32 userId = 1;</code>
     *
     * @return The userId.
     */
    public int getUserId() {
      return userId_;
    }

    public static final int USERNAME_FIELD_NUMBER = 2;
    private volatile java.lang.Object userName_;

    /**
     * <pre>
     * 用户名称
     * </pre>
     *
     * <code>string userName = 2;</code>
     *
     * @return The userName.
     */
    public java.lang.String getUserName() {
      java.lang.Object ref = userName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        userName_ = s;
        return s;
      }
    }

    /**
     * <pre>
     * 用户名称
     * </pre>
     *
     * <code>string userName = 2;</code>
     *
     * @return The bytes for userName.
     */
    public com.google.protobuf.ByteString
    getUserNameBytes() {
      java.lang.Object ref = userName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
                com.google.protobuf.ByteString.copyFromUtf8(
                        (java.lang.String) ref);
        userName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HEROAVATAR_FIELD_NUMBER = 3;
    private volatile java.lang.Object heroAvatar_;

    /**
     * <pre>
     * 英雄形象
     * </pre>
     *
     * <code>string heroAvatar = 3;</code>
     *
     * @return The heroAvatar.
     */
    public java.lang.String getHeroAvatar() {
      java.lang.Object ref = heroAvatar_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        heroAvatar_ = s;
        return s;
      }
    }

    /**
     * <pre>
     * 英雄形象
     * </pre>
     *
     * <code>string heroAvatar = 3;</code>
     *
     * @return The bytes for heroAvatar.
     */
    public com.google.protobuf.ByteString
    getHeroAvatarBytes() {
      java.lang.Object ref = heroAvatar_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
                com.google.protobuf.ByteString.copyFromUtf8(
                        (java.lang.String) ref);
        heroAvatar_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
            throws java.io.IOException {
      if (userId_ != 0) {
        output.writeUInt32(1, userId_);
      }
      if (!getUserNameBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, userName_);
      }
      if (!getHeroAvatarBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, heroAvatar_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (userId_ != 0) {
        size += com.google.protobuf.CodedOutputStream
                .computeUInt32Size(1, userId_);
      }
      if (!getUserNameBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, userName_);
      }
      if (!getHeroAvatarBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, heroAvatar_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginResult)) {
        return super.equals(obj);
      }
      cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginResult other = (cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginResult) obj;

      if (getUserId()
              != other.getUserId()) return false;
      if (!getUserName()
              .equals(other.getUserName())) return false;
      if (!getHeroAvatar()
              .equals(other.getHeroAvatar())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + USERID_FIELD_NUMBER;
      hash = (53 * hash) + getUserId();
      hash = (37 * hash) + USERNAME_FIELD_NUMBER;
      hash = (53 * hash) + getUserName().hashCode();
      hash = (37 * hash) + HEROAVATAR_FIELD_NUMBER;
      hash = (53 * hash) + getHeroAvatar().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginResult parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginResult parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginResult parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginResult parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginResult parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginResult parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginResult parseFrom(java.io.InputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginResult parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginResult parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginResult parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginResult parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginResult parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginResult prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }

    /**
     * <pre>
     * 结果
     * </pre>
     * <p>
     * Protobuf type {@code msg.UserLoginResult}
     */
    public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:msg.UserLoginResult)
            cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginResultOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
      getDescriptor() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserLoginResult_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserLoginResult_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                        cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginResult.class, cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginResult.Builder.class);
      }

      // Construct using cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginResult.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
              com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        userId_ = 0;

        userName_ = "";

        heroAvatar_ = "";

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
      getDescriptorForType() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_UserLoginResult_descriptor;
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginResult getDefaultInstanceForType() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginResult.getDefaultInstance();
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginResult build() {
        cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginResult result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginResult buildPartial() {
        cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginResult result = new cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginResult(this);
        result.userId_ = userId_;
        result.userName_ = userName_;
        result.heroAvatar_ = heroAvatar_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }

      @java.lang.Override
      public Builder setField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
        return super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(
              com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(
              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginResult) {
          return mergeFrom((cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginResult) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginResult other) {
        if (other == cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginResult.getDefaultInstance())
          return this;
        if (other.getUserId() != 0) {
          setUserId(other.getUserId());
        }
        if (!other.getUserName().isEmpty()) {
          userName_ = other.userName_;
          onChanged();
        }
        if (!other.getHeroAvatar().isEmpty()) {
          heroAvatar_ = other.heroAvatar_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginResult parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginResult) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int userId_;

      /**
       * <pre>
       * 用户 Id,
       * 如果是 -1 则说明登录失败
       * </pre>
       *
       * <code>uint32 userId = 1;</code>
       *
       * @return The userId.
       */
      public int getUserId() {
        return userId_;
      }

      /**
       * <pre>
       * 用户 Id,
       * 如果是 -1 则说明登录失败
       * </pre>
       *
       * <code>uint32 userId = 1;</code>
       *
       * @param value The userId to set.
       * @return This builder for chaining.
       */
      public Builder setUserId(int value) {

        userId_ = value;
        onChanged();
        return this;
      }

      /**
       * <pre>
       * 用户 Id,
       * 如果是 -1 则说明登录失败
       * </pre>
       *
       * <code>uint32 userId = 1;</code>
       *
       * @return This builder for chaining.
       */
      public Builder clearUserId() {

        userId_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object userName_ = "";

      /**
       * <pre>
       * 用户名称
       * </pre>
       *
       * <code>string userName = 2;</code>
       *
       * @return The userName.
       */
      public java.lang.String getUserName() {
        java.lang.Object ref = userName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
                  (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          userName_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }

      /**
       * <pre>
       * 用户名称
       * </pre>
       *
       * <code>string userName = 2;</code>
       *
       * @return The bytes for userName.
       */
      public com.google.protobuf.ByteString
      getUserNameBytes() {
        java.lang.Object ref = userName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
                  com.google.protobuf.ByteString.copyFromUtf8(
                          (java.lang.String) ref);
          userName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      /**
       * <pre>
       * 用户名称
       * </pre>
       *
       * <code>string userName = 2;</code>
       *
       * @param value The userName to set.
       * @return This builder for chaining.
       */
      public Builder setUserName(
              java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }

        userName_ = value;
        onChanged();
        return this;
      }

      /**
       * <pre>
       * 用户名称
       * </pre>
       *
       * <code>string userName = 2;</code>
       *
       * @return This builder for chaining.
       */
      public Builder clearUserName() {

        userName_ = getDefaultInstance().getUserName();
        onChanged();
        return this;
      }

      /**
       * <pre>
       * 用户名称
       * </pre>
       *
       * <code>string userName = 2;</code>
       *
       * @param value The bytes for userName to set.
       * @return This builder for chaining.
       */
      public Builder setUserNameBytes(
              com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        checkByteStringIsUtf8(value);

        userName_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object heroAvatar_ = "";

      /**
       * <pre>
       * 英雄形象
       * </pre>
       *
       * <code>string heroAvatar = 3;</code>
       *
       * @return The heroAvatar.
       */
      public java.lang.String getHeroAvatar() {
        java.lang.Object ref = heroAvatar_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
                  (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          heroAvatar_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }

      /**
       * <pre>
       * 英雄形象
       * </pre>
       *
       * <code>string heroAvatar = 3;</code>
       *
       * @return The bytes for heroAvatar.
       */
      public com.google.protobuf.ByteString
      getHeroAvatarBytes() {
        java.lang.Object ref = heroAvatar_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
                  com.google.protobuf.ByteString.copyFromUtf8(
                          (java.lang.String) ref);
          heroAvatar_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      /**
       * <pre>
       * 英雄形象
       * </pre>
       *
       * <code>string heroAvatar = 3;</code>
       *
       * @param value The heroAvatar to set.
       * @return This builder for chaining.
       */
      public Builder setHeroAvatar(
              java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }

        heroAvatar_ = value;
        onChanged();
        return this;
      }

      /**
       * <pre>
       * 英雄形象
       * </pre>
       *
       * <code>string heroAvatar = 3;</code>
       *
       * @return This builder for chaining.
       */
      public Builder clearHeroAvatar() {

        heroAvatar_ = getDefaultInstance().getHeroAvatar();
        onChanged();
        return this;
      }

      /**
       * <pre>
       * 英雄形象
       * </pre>
       *
       * <code>string heroAvatar = 3;</code>
       *
       * @param value The bytes for heroAvatar to set.
       * @return This builder for chaining.
       */
      public Builder setHeroAvatarBytes(
              com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        checkByteStringIsUtf8(value);

        heroAvatar_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:msg.UserLoginResult)
    }

    // @@protoc_insertion_point(class_scope:msg.UserLoginResult)
    private static final cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginResult DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginResult();
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginResult getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<UserLoginResult>
            PARSER = new com.google.protobuf.AbstractParser<UserLoginResult>() {
      @java.lang.Override
      public UserLoginResult parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return new UserLoginResult(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<UserLoginResult> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<UserLoginResult> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cn.lei.netty.herostory.msg.GameMsgProtocol.UserLoginResult getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SelectHeroCmdOrBuilder extends
          // @@protoc_insertion_point(interface_extends:msg.SelectHeroCmd)
          com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * 英雄形象
     * </pre>
     *
     * <code>string heroAvatar = 1;</code>
     *
     * @return The heroAvatar.
     */
    java.lang.String getHeroAvatar();

    /**
     * <pre>
     * 英雄形象
     * </pre>
     *
     * <code>string heroAvatar = 1;</code>
     *
     * @return The bytes for heroAvatar.
     */
    com.google.protobuf.ByteString
    getHeroAvatarBytes();
  }

  /**
   * <pre>
   *
   * 选择英雄
   * /////////////////////////////////////////////////////////////////////
   * 指令
   * </pre>
   * <p>
   * Protobuf type {@code msg.SelectHeroCmd}
   */
  public static final class SelectHeroCmd extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:msg.SelectHeroCmd)
          SelectHeroCmdOrBuilder {
    private static final long serialVersionUID = 0L;

    // Use SelectHeroCmd.newBuilder() to construct.
    private SelectHeroCmd(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private SelectHeroCmd() {
      heroAvatar_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
      return new SelectHeroCmd();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }

    private SelectHeroCmd(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();

              heroAvatar_ = s;
              break;
            }
            default: {
              if (!parseUnknownField(
                      input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
                e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor
    getDescriptor() {
      return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_SelectHeroCmd_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    internalGetFieldAccessorTable() {
      return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_SelectHeroCmd_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                      cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroCmd.class, cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroCmd.Builder.class);
    }

    public static final int HEROAVATAR_FIELD_NUMBER = 1;
    private volatile java.lang.Object heroAvatar_;

    /**
     * <pre>
     * 英雄形象
     * </pre>
     *
     * <code>string heroAvatar = 1;</code>
     *
     * @return The heroAvatar.
     */
    public java.lang.String getHeroAvatar() {
      java.lang.Object ref = heroAvatar_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        heroAvatar_ = s;
        return s;
      }
    }

    /**
     * <pre>
     * 英雄形象
     * </pre>
     *
     * <code>string heroAvatar = 1;</code>
     *
     * @return The bytes for heroAvatar.
     */
    public com.google.protobuf.ByteString
    getHeroAvatarBytes() {
      java.lang.Object ref = heroAvatar_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
                com.google.protobuf.ByteString.copyFromUtf8(
                        (java.lang.String) ref);
        heroAvatar_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
            throws java.io.IOException {
      if (!getHeroAvatarBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, heroAvatar_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!getHeroAvatarBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, heroAvatar_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroCmd)) {
        return super.equals(obj);
      }
      cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroCmd other = (cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroCmd) obj;

      if (!getHeroAvatar()
              .equals(other.getHeroAvatar())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + HEROAVATAR_FIELD_NUMBER;
      hash = (53 * hash) + getHeroAvatar().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroCmd parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroCmd parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroCmd parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroCmd parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroCmd parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroCmd parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroCmd parseFrom(java.io.InputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroCmd parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroCmd parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroCmd parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroCmd parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroCmd parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroCmd prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }

    /**
     * <pre>
     *
     * 选择英雄
     * /////////////////////////////////////////////////////////////////////
     * 指令
     * </pre>
     * <p>
     * Protobuf type {@code msg.SelectHeroCmd}
     */
    public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:msg.SelectHeroCmd)
            cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroCmdOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
      getDescriptor() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_SelectHeroCmd_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_SelectHeroCmd_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                        cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroCmd.class, cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroCmd.Builder.class);
      }

      // Construct using cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroCmd.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
              com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        heroAvatar_ = "";

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
      getDescriptorForType() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_SelectHeroCmd_descriptor;
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroCmd getDefaultInstanceForType() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroCmd.getDefaultInstance();
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroCmd build() {
        cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroCmd result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroCmd buildPartial() {
        cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroCmd result = new cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroCmd(this);
        result.heroAvatar_ = heroAvatar_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }

      @java.lang.Override
      public Builder setField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
        return super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(
              com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(
              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroCmd) {
          return mergeFrom((cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroCmd) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroCmd other) {
        if (other == cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroCmd.getDefaultInstance()) return this;
        if (!other.getHeroAvatar().isEmpty()) {
          heroAvatar_ = other.heroAvatar_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroCmd parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroCmd) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private java.lang.Object heroAvatar_ = "";

      /**
       * <pre>
       * 英雄形象
       * </pre>
       *
       * <code>string heroAvatar = 1;</code>
       *
       * @return The heroAvatar.
       */
      public java.lang.String getHeroAvatar() {
        java.lang.Object ref = heroAvatar_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
                  (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          heroAvatar_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }

      /**
       * <pre>
       * 英雄形象
       * </pre>
       *
       * <code>string heroAvatar = 1;</code>
       *
       * @return The bytes for heroAvatar.
       */
      public com.google.protobuf.ByteString
      getHeroAvatarBytes() {
        java.lang.Object ref = heroAvatar_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
                  com.google.protobuf.ByteString.copyFromUtf8(
                          (java.lang.String) ref);
          heroAvatar_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      /**
       * <pre>
       * 英雄形象
       * </pre>
       *
       * <code>string heroAvatar = 1;</code>
       *
       * @param value The heroAvatar to set.
       * @return This builder for chaining.
       */
      public Builder setHeroAvatar(
              java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }

        heroAvatar_ = value;
        onChanged();
        return this;
      }

      /**
       * <pre>
       * 英雄形象
       * </pre>
       *
       * <code>string heroAvatar = 1;</code>
       *
       * @return This builder for chaining.
       */
      public Builder clearHeroAvatar() {

        heroAvatar_ = getDefaultInstance().getHeroAvatar();
        onChanged();
        return this;
      }

      /**
       * <pre>
       * 英雄形象
       * </pre>
       *
       * <code>string heroAvatar = 1;</code>
       *
       * @param value The bytes for heroAvatar to set.
       * @return This builder for chaining.
       */
      public Builder setHeroAvatarBytes(
              com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        checkByteStringIsUtf8(value);

        heroAvatar_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:msg.SelectHeroCmd)
    }

    // @@protoc_insertion_point(class_scope:msg.SelectHeroCmd)
    private static final cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroCmd DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroCmd();
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroCmd getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<SelectHeroCmd>
            PARSER = new com.google.protobuf.AbstractParser<SelectHeroCmd>() {
      @java.lang.Override
      public SelectHeroCmd parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return new SelectHeroCmd(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<SelectHeroCmd> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<SelectHeroCmd> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroCmd getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface SelectHeroResultOrBuilder extends
          // @@protoc_insertion_point(interface_extends:msg.SelectHeroResult)
          com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * 英雄形象,
     * 如果是空字符串则说明失败
     * </pre>
     *
     * <code>string heroAvatar = 1;</code>
     *
     * @return The heroAvatar.
     */
    java.lang.String getHeroAvatar();

    /**
     * <pre>
     * 英雄形象,
     * 如果是空字符串则说明失败
     * </pre>
     *
     * <code>string heroAvatar = 1;</code>
     *
     * @return The bytes for heroAvatar.
     */
    com.google.protobuf.ByteString
    getHeroAvatarBytes();
  }

  /**
   * <pre>
   * 结果
   * </pre>
   * <p>
   * Protobuf type {@code msg.SelectHeroResult}
   */
  public static final class SelectHeroResult extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:msg.SelectHeroResult)
          SelectHeroResultOrBuilder {
    private static final long serialVersionUID = 0L;

    // Use SelectHeroResult.newBuilder() to construct.
    private SelectHeroResult(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private SelectHeroResult() {
      heroAvatar_ = "";
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
      return new SelectHeroResult();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }

    private SelectHeroResult(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              java.lang.String s = input.readStringRequireUtf8();

              heroAvatar_ = s;
              break;
            }
            default: {
              if (!parseUnknownField(
                      input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
                e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor
    getDescriptor() {
      return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_SelectHeroResult_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    internalGetFieldAccessorTable() {
      return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_SelectHeroResult_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                      cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroResult.class, cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroResult.Builder.class);
    }

    public static final int HEROAVATAR_FIELD_NUMBER = 1;
    private volatile java.lang.Object heroAvatar_;

    /**
     * <pre>
     * 英雄形象,
     * 如果是空字符串则说明失败
     * </pre>
     *
     * <code>string heroAvatar = 1;</code>
     *
     * @return The heroAvatar.
     */
    public java.lang.String getHeroAvatar() {
      java.lang.Object ref = heroAvatar_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        heroAvatar_ = s;
        return s;
      }
    }

    /**
     * <pre>
     * 英雄形象,
     * 如果是空字符串则说明失败
     * </pre>
     *
     * <code>string heroAvatar = 1;</code>
     *
     * @return The bytes for heroAvatar.
     */
    public com.google.protobuf.ByteString
    getHeroAvatarBytes() {
      java.lang.Object ref = heroAvatar_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
                com.google.protobuf.ByteString.copyFromUtf8(
                        (java.lang.String) ref);
        heroAvatar_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
            throws java.io.IOException {
      if (!getHeroAvatarBytes().isEmpty()) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, heroAvatar_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (!getHeroAvatarBytes().isEmpty()) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, heroAvatar_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroResult)) {
        return super.equals(obj);
      }
      cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroResult other = (cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroResult) obj;

      if (!getHeroAvatar()
              .equals(other.getHeroAvatar())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + HEROAVATAR_FIELD_NUMBER;
      hash = (53 * hash) + getHeroAvatar().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroResult parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroResult parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroResult parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroResult parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroResult parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroResult parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroResult parseFrom(java.io.InputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroResult parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroResult parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroResult parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroResult parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroResult parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroResult prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }

    /**
     * <pre>
     * 结果
     * </pre>
     * <p>
     * Protobuf type {@code msg.SelectHeroResult}
     */
    public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:msg.SelectHeroResult)
            cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroResultOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
      getDescriptor() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_SelectHeroResult_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_SelectHeroResult_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                        cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroResult.class, cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroResult.Builder.class);
      }

      // Construct using cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroResult.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
              com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        heroAvatar_ = "";

        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
      getDescriptorForType() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_SelectHeroResult_descriptor;
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroResult getDefaultInstanceForType() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroResult.getDefaultInstance();
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroResult build() {
        cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroResult result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroResult buildPartial() {
        cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroResult result = new cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroResult(this);
        result.heroAvatar_ = heroAvatar_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }

      @java.lang.Override
      public Builder setField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
        return super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(
              com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(
              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroResult) {
          return mergeFrom((cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroResult) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroResult other) {
        if (other == cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroResult.getDefaultInstance())
          return this;
        if (!other.getHeroAvatar().isEmpty()) {
          heroAvatar_ = other.heroAvatar_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroResult parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroResult) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private java.lang.Object heroAvatar_ = "";

      /**
       * <pre>
       * 英雄形象,
       * 如果是空字符串则说明失败
       * </pre>
       *
       * <code>string heroAvatar = 1;</code>
       *
       * @return The heroAvatar.
       */
      public java.lang.String getHeroAvatar() {
        java.lang.Object ref = heroAvatar_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
                  (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          heroAvatar_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }

      /**
       * <pre>
       * 英雄形象,
       * 如果是空字符串则说明失败
       * </pre>
       *
       * <code>string heroAvatar = 1;</code>
       *
       * @return The bytes for heroAvatar.
       */
      public com.google.protobuf.ByteString
      getHeroAvatarBytes() {
        java.lang.Object ref = heroAvatar_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
                  com.google.protobuf.ByteString.copyFromUtf8(
                          (java.lang.String) ref);
          heroAvatar_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      /**
       * <pre>
       * 英雄形象,
       * 如果是空字符串则说明失败
       * </pre>
       *
       * <code>string heroAvatar = 1;</code>
       *
       * @param value The heroAvatar to set.
       * @return This builder for chaining.
       */
      public Builder setHeroAvatar(
              java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }

        heroAvatar_ = value;
        onChanged();
        return this;
      }

      /**
       * <pre>
       * 英雄形象,
       * 如果是空字符串则说明失败
       * </pre>
       *
       * <code>string heroAvatar = 1;</code>
       *
       * @return This builder for chaining.
       */
      public Builder clearHeroAvatar() {

        heroAvatar_ = getDefaultInstance().getHeroAvatar();
        onChanged();
        return this;
      }

      /**
       * <pre>
       * 英雄形象,
       * 如果是空字符串则说明失败
       * </pre>
       *
       * <code>string heroAvatar = 1;</code>
       *
       * @param value The bytes for heroAvatar to set.
       * @return This builder for chaining.
       */
      public Builder setHeroAvatarBytes(
              com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        checkByteStringIsUtf8(value);

        heroAvatar_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:msg.SelectHeroResult)
    }

    // @@protoc_insertion_point(class_scope:msg.SelectHeroResult)
    private static final cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroResult DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroResult();
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroResult getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<SelectHeroResult>
            PARSER = new com.google.protobuf.AbstractParser<SelectHeroResult>() {
      @java.lang.Override
      public SelectHeroResult parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return new SelectHeroResult(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<SelectHeroResult> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<SelectHeroResult> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cn.lei.netty.herostory.msg.GameMsgProtocol.SelectHeroResult getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface GetRankCmdOrBuilder extends
          // @@protoc_insertion_point(interface_extends:msg.GetRankCmd)
          com.google.protobuf.MessageOrBuilder {
  }

  /**
   * <pre>
   * 获取排行榜
   * /////////////////////////////////////////////////////////////////////
   * 指令
   * </pre>
   * <p>
   * Protobuf type {@code msg.GetRankCmd}
   */
  public static final class GetRankCmd extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:msg.GetRankCmd)
          GetRankCmdOrBuilder {
    private static final long serialVersionUID = 0L;

    // Use GetRankCmd.newBuilder() to construct.
    private GetRankCmd(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private GetRankCmd() {
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
      return new GetRankCmd();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }

    private GetRankCmd(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(
                      input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
                e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor
    getDescriptor() {
      return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_GetRankCmd_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    internalGetFieldAccessorTable() {
      return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_GetRankCmd_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                      cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankCmd.class, cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankCmd.Builder.class);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
            throws java.io.IOException {
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankCmd)) {
        return super.equals(obj);
      }
      cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankCmd other = (cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankCmd) obj;

      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankCmd parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankCmd parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankCmd parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankCmd parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankCmd parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankCmd parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankCmd parseFrom(java.io.InputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankCmd parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankCmd parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankCmd parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankCmd parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankCmd parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankCmd prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }

    /**
     * <pre>
     * 获取排行榜
     * /////////////////////////////////////////////////////////////////////
     * 指令
     * </pre>
     * <p>
     * Protobuf type {@code msg.GetRankCmd}
     */
    public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:msg.GetRankCmd)
            cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankCmdOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
      getDescriptor() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_GetRankCmd_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_GetRankCmd_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                        cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankCmd.class, cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankCmd.Builder.class);
      }

      // Construct using cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankCmd.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
              com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
      getDescriptorForType() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_GetRankCmd_descriptor;
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankCmd getDefaultInstanceForType() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankCmd.getDefaultInstance();
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankCmd build() {
        cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankCmd result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankCmd buildPartial() {
        cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankCmd result = new cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankCmd(this);
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }

      @java.lang.Override
      public Builder setField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
        return super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(
              com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(
              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankCmd) {
          return mergeFrom((cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankCmd) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankCmd other) {
        if (other == cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankCmd.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankCmd parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankCmd) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:msg.GetRankCmd)
    }

    // @@protoc_insertion_point(class_scope:msg.GetRankCmd)
    private static final cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankCmd DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankCmd();
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankCmd getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<GetRankCmd>
            PARSER = new com.google.protobuf.AbstractParser<GetRankCmd>() {
      @java.lang.Override
      public GetRankCmd parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return new GetRankCmd(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<GetRankCmd> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<GetRankCmd> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankCmd getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface GetRankResultOrBuilder extends
          // @@protoc_insertion_point(interface_extends:msg.GetRankResult)
          com.google.protobuf.MessageOrBuilder {

    /**
     * <pre>
     * 排名条目
     * </pre>
     *
     * <code>repeated .msg.GetRankResult.RankItem rankItem = 1;</code>
     */
    java.util.List<cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem>
    getRankItemList();

    /**
     * <pre>
     * 排名条目
     * </pre>
     *
     * <code>repeated .msg.GetRankResult.RankItem rankItem = 1;</code>
     */
    cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem getRankItem(int index);

    /**
     * <pre>
     * 排名条目
     * </pre>
     *
     * <code>repeated .msg.GetRankResult.RankItem rankItem = 1;</code>
     */
    int getRankItemCount();

    /**
     * <pre>
     * 排名条目
     * </pre>
     *
     * <code>repeated .msg.GetRankResult.RankItem rankItem = 1;</code>
     */
    java.util.List<? extends cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItemOrBuilder>
    getRankItemOrBuilderList();

    /**
     * <pre>
     * 排名条目
     * </pre>
     *
     * <code>repeated .msg.GetRankResult.RankItem rankItem = 1;</code>
     */
    cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItemOrBuilder getRankItemOrBuilder(
            int index);
  }

  /**
   * <pre>
   * 结果
   * </pre>
   * <p>
   * Protobuf type {@code msg.GetRankResult}
   */
  public static final class GetRankResult extends
          com.google.protobuf.GeneratedMessageV3 implements
          // @@protoc_insertion_point(message_implements:msg.GetRankResult)
          GetRankResultOrBuilder {
    private static final long serialVersionUID = 0L;

    // Use GetRankResult.newBuilder() to construct.
    private GetRankResult(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private GetRankResult() {
      rankItem_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
            UnusedPrivateParameter unused) {
      return new GetRankResult();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }

    private GetRankResult(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) != 0)) {
                rankItem_ = new java.util.ArrayList<cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem>();
                mutable_bitField0_ |= 0x00000001;
              }
              rankItem_.add(
                      input.readMessage(cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem.parser(), extensionRegistry));
              break;
            }
            default: {
              if (!parseUnknownField(
                      input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
                e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) != 0)) {
          rankItem_ = java.util.Collections.unmodifiableList(rankItem_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor
    getDescriptor() {
      return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_GetRankResult_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
    internalGetFieldAccessorTable() {
      return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_GetRankResult_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                      cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.class, cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.Builder.class);
    }

    public interface RankItemOrBuilder extends
            // @@protoc_insertion_point(interface_extends:msg.GetRankResult.RankItem)
            com.google.protobuf.MessageOrBuilder {

      /**
       * <pre>
       * 排名 Id
       * </pre>
       *
       * <code>uint32 rankId = 1;</code>
       *
       * @return The rankId.
       */
      int getRankId();

      /**
       * <pre>
       * 用户 Id
       * </pre>
       *
       * <code>uint32 userId = 2;</code>
       *
       * @return The userId.
       */
      int getUserId();

      /**
       * <pre>
       * 用户名称
       * </pre>
       *
       * <code>string userName = 3;</code>
       *
       * @return The userName.
       */
      java.lang.String getUserName();

      /**
       * <pre>
       * 用户名称
       * </pre>
       *
       * <code>string userName = 3;</code>
       *
       * @return The bytes for userName.
       */
      com.google.protobuf.ByteString
      getUserNameBytes();

      /**
       * <pre>
       * 英雄形象
       * </pre>
       *
       * <code>string heroAvatar = 4;</code>
       *
       * @return The heroAvatar.
       */
      java.lang.String getHeroAvatar();

      /**
       * <pre>
       * 英雄形象
       * </pre>
       *
       * <code>string heroAvatar = 4;</code>
       *
       * @return The bytes for heroAvatar.
       */
      com.google.protobuf.ByteString
      getHeroAvatarBytes();

      /**
       * <pre>
       * 胜利次数
       * </pre>
       *
       * <code>uint32 win = 5;</code>
       *
       * @return The win.
       */
      int getWin();
    }

    /**
     * <pre>
     * 用户信息
     * </pre>
     * <p>
     * Protobuf type {@code msg.GetRankResult.RankItem}
     */
    public static final class RankItem extends
            com.google.protobuf.GeneratedMessageV3 implements
            // @@protoc_insertion_point(message_implements:msg.GetRankResult.RankItem)
            RankItemOrBuilder {
      private static final long serialVersionUID = 0L;

      // Use RankItem.newBuilder() to construct.
      private RankItem(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
        super(builder);
      }

      private RankItem() {
        userName_ = "";
        heroAvatar_ = "";
      }

      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
              UnusedPrivateParameter unused) {
        return new RankItem();
      }

      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }

      private RankItem(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
                com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {

                rankId_ = input.readUInt32();
                break;
              }
              case 16: {

                userId_ = input.readUInt32();
                break;
              }
              case 26: {
                java.lang.String s = input.readStringRequireUtf8();

                userName_ = s;
                break;
              }
              case 34: {
                java.lang.String s = input.readStringRequireUtf8();

                heroAvatar_ = s;
                break;
              }
              case 40: {

                win_ = input.readUInt32();
                break;
              }
              default: {
                if (!parseUnknownField(
                        input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
                  e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }

      public static final com.google.protobuf.Descriptors.Descriptor
      getDescriptor() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_GetRankResult_RankItem_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_GetRankResult_RankItem_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                        cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem.class, cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem.Builder.class);
      }

      public static final int RANKID_FIELD_NUMBER = 1;
      private int rankId_;

      /**
       * <pre>
       * 排名 Id
       * </pre>
       *
       * <code>uint32 rankId = 1;</code>
       *
       * @return The rankId.
       */
      public int getRankId() {
        return rankId_;
      }

      public static final int USERID_FIELD_NUMBER = 2;
      private int userId_;

      /**
       * <pre>
       * 用户 Id
       * </pre>
       *
       * <code>uint32 userId = 2;</code>
       *
       * @return The userId.
       */
      public int getUserId() {
        return userId_;
      }

      public static final int USERNAME_FIELD_NUMBER = 3;
      private volatile java.lang.Object userName_;

      /**
       * <pre>
       * 用户名称
       * </pre>
       *
       * <code>string userName = 3;</code>
       *
       * @return The userName.
       */
      public java.lang.String getUserName() {
        java.lang.Object ref = userName_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs =
                  (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          userName_ = s;
          return s;
        }
      }

      /**
       * <pre>
       * 用户名称
       * </pre>
       *
       * <code>string userName = 3;</code>
       *
       * @return The bytes for userName.
       */
      public com.google.protobuf.ByteString
      getUserNameBytes() {
        java.lang.Object ref = userName_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b =
                  com.google.protobuf.ByteString.copyFromUtf8(
                          (java.lang.String) ref);
          userName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int HEROAVATAR_FIELD_NUMBER = 4;
      private volatile java.lang.Object heroAvatar_;

      /**
       * <pre>
       * 英雄形象
       * </pre>
       *
       * <code>string heroAvatar = 4;</code>
       *
       * @return The heroAvatar.
       */
      public java.lang.String getHeroAvatar() {
        java.lang.Object ref = heroAvatar_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs =
                  (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          heroAvatar_ = s;
          return s;
        }
      }

      /**
       * <pre>
       * 英雄形象
       * </pre>
       *
       * <code>string heroAvatar = 4;</code>
       *
       * @return The bytes for heroAvatar.
       */
      public com.google.protobuf.ByteString
      getHeroAvatarBytes() {
        java.lang.Object ref = heroAvatar_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b =
                  com.google.protobuf.ByteString.copyFromUtf8(
                          (java.lang.String) ref);
          heroAvatar_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int WIN_FIELD_NUMBER = 5;
      private int win_;

      /**
       * <pre>
       * 胜利次数
       * </pre>
       *
       * <code>uint32 win = 5;</code>
       *
       * @return The win.
       */
      public int getWin() {
        return win_;
      }

      private byte memoizedIsInitialized = -1;

      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
              throws java.io.IOException {
        if (rankId_ != 0) {
          output.writeUInt32(1, rankId_);
        }
        if (userId_ != 0) {
          output.writeUInt32(2, userId_);
        }
        if (!getUserNameBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 3, userName_);
        }
        if (!getHeroAvatarBytes().isEmpty()) {
          com.google.protobuf.GeneratedMessageV3.writeString(output, 4, heroAvatar_);
        }
        if (win_ != 0) {
          output.writeUInt32(5, win_);
        }
        unknownFields.writeTo(output);
      }

      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;

        size = 0;
        if (rankId_ != 0) {
          size += com.google.protobuf.CodedOutputStream
                  .computeUInt32Size(1, rankId_);
        }
        if (userId_ != 0) {
          size += com.google.protobuf.CodedOutputStream
                  .computeUInt32Size(2, userId_);
        }
        if (!getUserNameBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, userName_);
        }
        if (!getHeroAvatarBytes().isEmpty()) {
          size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, heroAvatar_);
        }
        if (win_ != 0) {
          size += com.google.protobuf.CodedOutputStream
                  .computeUInt32Size(5, win_);
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
          return true;
        }
        if (!(obj instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem)) {
          return super.equals(obj);
        }
        cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem other = (cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem) obj;

        if (getRankId()
                != other.getRankId()) return false;
        if (getUserId()
                != other.getUserId()) return false;
        if (!getUserName()
                .equals(other.getUserName())) return false;
        if (!getHeroAvatar()
                .equals(other.getHeroAvatar())) return false;
        if (getWin()
                != other.getWin()) return false;
        if (!unknownFields.equals(other.unknownFields)) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        hash = (37 * hash) + RANKID_FIELD_NUMBER;
        hash = (53 * hash) + getRankId();
        hash = (37 * hash) + USERID_FIELD_NUMBER;
        hash = (53 * hash) + getUserId();
        hash = (37 * hash) + USERNAME_FIELD_NUMBER;
        hash = (53 * hash) + getUserName().hashCode();
        hash = (37 * hash) + HEROAVATAR_FIELD_NUMBER;
        hash = (53 * hash) + getHeroAvatar().hashCode();
        hash = (37 * hash) + WIN_FIELD_NUMBER;
        hash = (53 * hash) + getWin();
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem parseFrom(
              java.nio.ByteBuffer data)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }

      public static cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem parseFrom(
              java.nio.ByteBuffer data,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }

      public static cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem parseFrom(
              com.google.protobuf.ByteString data)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }

      public static cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem parseFrom(
              com.google.protobuf.ByteString data,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }

      public static cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem parseFrom(byte[] data)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }

      public static cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem parseFrom(
              byte[] data,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }

      public static cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem parseFrom(java.io.InputStream input)
              throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input);
      }

      public static cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem parseFrom(
              java.io.InputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input, extensionRegistry);
      }

      public static cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem parseDelimitedFrom(java.io.InputStream input)
              throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
                .parseDelimitedWithIOException(PARSER, input);
      }

      public static cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem parseDelimitedFrom(
              java.io.InputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
                .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }

      public static cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem parseFrom(
              com.google.protobuf.CodedInputStream input)
              throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input);
      }

      public static cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem parseFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
                .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() {
        return newBuilder();
      }

      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }

      public static Builder newBuilder(cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }

      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
                ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
              com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }

      /**
       * <pre>
       * 用户信息
       * </pre>
       * <p>
       * Protobuf type {@code msg.GetRankResult.RankItem}
       */
      public static final class Builder extends
              com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
              // @@protoc_insertion_point(builder_implements:msg.GetRankResult.RankItem)
              cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItemOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
          return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_GetRankResult_RankItem_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
          return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_GetRankResult_RankItem_fieldAccessorTable
                  .ensureFieldAccessorsInitialized(
                          cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem.class, cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem.Builder.class);
        }

        // Construct using cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
                com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }

        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }

        @java.lang.Override
        public Builder clear() {
          super.clear();
          rankId_ = 0;

          userId_ = 0;

          userName_ = "";

          heroAvatar_ = "";

          win_ = 0;

          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
        getDescriptorForType() {
          return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_GetRankResult_RankItem_descriptor;
        }

        @java.lang.Override
        public cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem getDefaultInstanceForType() {
          return cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem.getDefaultInstance();
        }

        @java.lang.Override
        public cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem build() {
          cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem buildPartial() {
          cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem result = new cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem(this);
          result.rankId_ = rankId_;
          result.userId_ = userId_;
          result.userName_ = userName_;
          result.heroAvatar_ = heroAvatar_;
          result.win_ = win_;
          onBuilt();
          return result;
        }

        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }

        @java.lang.Override
        public Builder setField(
                com.google.protobuf.Descriptors.FieldDescriptor field,
                java.lang.Object value) {
          return super.setField(field, value);
        }

        @java.lang.Override
        public Builder clearField(
                com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }

        @java.lang.Override
        public Builder clearOneof(
                com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }

        @java.lang.Override
        public Builder setRepeatedField(
                com.google.protobuf.Descriptors.FieldDescriptor field,
                int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }

        @java.lang.Override
        public Builder addRepeatedField(
                com.google.protobuf.Descriptors.FieldDescriptor field,
                java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem) {
            return mergeFrom((cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem) other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem other) {
          if (other == cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem.getDefaultInstance())
            return this;
          if (other.getRankId() != 0) {
            setRankId(other.getRankId());
          }
          if (other.getUserId() != 0) {
            setUserId(other.getUserId());
          }
          if (!other.getUserName().isEmpty()) {
            userName_ = other.userName_;
            onChanged();
          }
          if (!other.getHeroAvatar().isEmpty()) {
            heroAvatar_ = other.heroAvatar_;
            onChanged();
          }
          if (other.getWin() != 0) {
            setWin(other.getWin());
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }

        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }

        @java.lang.Override
        public Builder mergeFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws java.io.IOException {
          cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }

        private int rankId_;

        /**
         * <pre>
         * 排名 Id
         * </pre>
         *
         * <code>uint32 rankId = 1;</code>
         *
         * @return The rankId.
         */
        public int getRankId() {
          return rankId_;
        }

        /**
         * <pre>
         * 排名 Id
         * </pre>
         *
         * <code>uint32 rankId = 1;</code>
         *
         * @param value The rankId to set.
         * @return This builder for chaining.
         */
        public Builder setRankId(int value) {

          rankId_ = value;
          onChanged();
          return this;
        }

        /**
         * <pre>
         * 排名 Id
         * </pre>
         *
         * <code>uint32 rankId = 1;</code>
         *
         * @return This builder for chaining.
         */
        public Builder clearRankId() {

          rankId_ = 0;
          onChanged();
          return this;
        }

        private int userId_;

        /**
         * <pre>
         * 用户 Id
         * </pre>
         *
         * <code>uint32 userId = 2;</code>
         *
         * @return The userId.
         */
        public int getUserId() {
          return userId_;
        }

        /**
         * <pre>
         * 用户 Id
         * </pre>
         *
         * <code>uint32 userId = 2;</code>
         *
         * @param value The userId to set.
         * @return This builder for chaining.
         */
        public Builder setUserId(int value) {

          userId_ = value;
          onChanged();
          return this;
        }

        /**
         * <pre>
         * 用户 Id
         * </pre>
         *
         * <code>uint32 userId = 2;</code>
         *
         * @return This builder for chaining.
         */
        public Builder clearUserId() {

          userId_ = 0;
          onChanged();
          return this;
        }

        private java.lang.Object userName_ = "";

        /**
         * <pre>
         * 用户名称
         * </pre>
         *
         * <code>string userName = 3;</code>
         *
         * @return The userName.
         */
        public java.lang.String getUserName() {
          java.lang.Object ref = userName_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                    (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            userName_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }

        /**
         * <pre>
         * 用户名称
         * </pre>
         *
         * <code>string userName = 3;</code>
         *
         * @return The bytes for userName.
         */
        public com.google.protobuf.ByteString
        getUserNameBytes() {
          java.lang.Object ref = userName_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b =
                    com.google.protobuf.ByteString.copyFromUtf8(
                            (java.lang.String) ref);
            userName_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }

        /**
         * <pre>
         * 用户名称
         * </pre>
         *
         * <code>string userName = 3;</code>
         *
         * @param value The userName to set.
         * @return This builder for chaining.
         */
        public Builder setUserName(
                java.lang.String value) {
          if (value == null) {
            throw new NullPointerException();
          }

          userName_ = value;
          onChanged();
          return this;
        }

        /**
         * <pre>
         * 用户名称
         * </pre>
         *
         * <code>string userName = 3;</code>
         *
         * @return This builder for chaining.
         */
        public Builder clearUserName() {

          userName_ = getDefaultInstance().getUserName();
          onChanged();
          return this;
        }

        /**
         * <pre>
         * 用户名称
         * </pre>
         *
         * <code>string userName = 3;</code>
         *
         * @param value The bytes for userName to set.
         * @return This builder for chaining.
         */
        public Builder setUserNameBytes(
                com.google.protobuf.ByteString value) {
          if (value == null) {
            throw new NullPointerException();
          }
          checkByteStringIsUtf8(value);

          userName_ = value;
          onChanged();
          return this;
        }

        private java.lang.Object heroAvatar_ = "";

        /**
         * <pre>
         * 英雄形象
         * </pre>
         *
         * <code>string heroAvatar = 4;</code>
         *
         * @return The heroAvatar.
         */
        public java.lang.String getHeroAvatar() {
          java.lang.Object ref = heroAvatar_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                    (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            heroAvatar_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }

        /**
         * <pre>
         * 英雄形象
         * </pre>
         *
         * <code>string heroAvatar = 4;</code>
         *
         * @return The bytes for heroAvatar.
         */
        public com.google.protobuf.ByteString
        getHeroAvatarBytes() {
          java.lang.Object ref = heroAvatar_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b =
                    com.google.protobuf.ByteString.copyFromUtf8(
                            (java.lang.String) ref);
            heroAvatar_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }

        /**
         * <pre>
         * 英雄形象
         * </pre>
         *
         * <code>string heroAvatar = 4;</code>
         *
         * @param value The heroAvatar to set.
         * @return This builder for chaining.
         */
        public Builder setHeroAvatar(
                java.lang.String value) {
          if (value == null) {
            throw new NullPointerException();
          }

          heroAvatar_ = value;
          onChanged();
          return this;
        }

        /**
         * <pre>
         * 英雄形象
         * </pre>
         *
         * <code>string heroAvatar = 4;</code>
         *
         * @return This builder for chaining.
         */
        public Builder clearHeroAvatar() {

          heroAvatar_ = getDefaultInstance().getHeroAvatar();
          onChanged();
          return this;
        }

        /**
         * <pre>
         * 英雄形象
         * </pre>
         *
         * <code>string heroAvatar = 4;</code>
         *
         * @param value The bytes for heroAvatar to set.
         * @return This builder for chaining.
         */
        public Builder setHeroAvatarBytes(
                com.google.protobuf.ByteString value) {
          if (value == null) {
            throw new NullPointerException();
          }
          checkByteStringIsUtf8(value);

          heroAvatar_ = value;
          onChanged();
          return this;
        }

        private int win_;

        /**
         * <pre>
         * 胜利次数
         * </pre>
         *
         * <code>uint32 win = 5;</code>
         *
         * @return The win.
         */
        public int getWin() {
          return win_;
        }

        /**
         * <pre>
         * 胜利次数
         * </pre>
         *
         * <code>uint32 win = 5;</code>
         *
         * @param value The win to set.
         * @return This builder for chaining.
         */
        public Builder setWin(int value) {

          win_ = value;
          onChanged();
          return this;
        }

        /**
         * <pre>
         * 胜利次数
         * </pre>
         *
         * <code>uint32 win = 5;</code>
         *
         * @return This builder for chaining.
         */
        public Builder clearWin() {

          win_ = 0;
          onChanged();
          return this;
        }

        @java.lang.Override
        public final Builder setUnknownFields(
                final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }

        @java.lang.Override
        public final Builder mergeUnknownFields(
                final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }


        // @@protoc_insertion_point(builder_scope:msg.GetRankResult.RankItem)
      }

      // @@protoc_insertion_point(class_scope:msg.GetRankResult.RankItem)
      private static final cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem DEFAULT_INSTANCE;

      static {
        DEFAULT_INSTANCE = new cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem();
      }

      public static cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

      private static final com.google.protobuf.Parser<RankItem>
              PARSER = new com.google.protobuf.AbstractParser<RankItem>() {
        @java.lang.Override
        public RankItem parsePartialFrom(
                com.google.protobuf.CodedInputStream input,
                com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                throws com.google.protobuf.InvalidProtocolBufferException {
          return new RankItem(input, extensionRegistry);
        }
      };

      public static com.google.protobuf.Parser<RankItem> parser() {
        return PARSER;
      }

      @java.lang.Override
      public com.google.protobuf.Parser<RankItem> getParserForType() {
        return PARSER;
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    public static final int RANKITEM_FIELD_NUMBER = 1;
    private java.util.List<cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem> rankItem_;

    /**
     * <pre>
     * 排名条目
     * </pre>
     *
     * <code>repeated .msg.GetRankResult.RankItem rankItem = 1;</code>
     */
    public java.util.List<cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem> getRankItemList() {
      return rankItem_;
    }

    /**
     * <pre>
     * 排名条目
     * </pre>
     *
     * <code>repeated .msg.GetRankResult.RankItem rankItem = 1;</code>
     */
    public java.util.List<? extends cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItemOrBuilder>
    getRankItemOrBuilderList() {
      return rankItem_;
    }

    /**
     * <pre>
     * 排名条目
     * </pre>
     *
     * <code>repeated .msg.GetRankResult.RankItem rankItem = 1;</code>
     */
    public int getRankItemCount() {
      return rankItem_.size();
    }

    /**
     * <pre>
     * 排名条目
     * </pre>
     *
     * <code>repeated .msg.GetRankResult.RankItem rankItem = 1;</code>
     */
    public cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem getRankItem(int index) {
      return rankItem_.get(index);
    }

    /**
     * <pre>
     * 排名条目
     * </pre>
     *
     * <code>repeated .msg.GetRankResult.RankItem rankItem = 1;</code>
     */
    public cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItemOrBuilder getRankItemOrBuilder(
            int index) {
      return rankItem_.get(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
            throws java.io.IOException {
      for (int i = 0; i < rankItem_.size(); i++) {
        output.writeMessage(1, rankItem_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < rankItem_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
                .computeMessageSize(1, rankItem_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult)) {
        return super.equals(obj);
      }
      cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult other = (cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult) obj;

      if (!getRankItemList()
              .equals(other.getRankItemList())) return false;
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getRankItemCount() > 0) {
        hash = (37 * hash) + RANKITEM_FIELD_NUMBER;
        hash = (53 * hash) + getRankItemList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult parseFrom(
            java.nio.ByteBuffer data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult parseFrom(
            java.nio.ByteBuffer data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult parseFrom(java.io.InputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input);
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
              .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
              ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }

    /**
     * <pre>
     * 结果
     * </pre>
     * <p>
     * Protobuf type {@code msg.GetRankResult}
     */
    public static final class Builder extends
            com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
            // @@protoc_insertion_point(builder_implements:msg.GetRankResult)
            cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResultOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
      getDescriptor() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_GetRankResult_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_GetRankResult_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                        cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.class, cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.Builder.class);
      }

      // Construct using cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
              com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
          getRankItemFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (rankItemBuilder_ == null) {
          rankItem_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          rankItemBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
      getDescriptorForType() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.internal_static_msg_GetRankResult_descriptor;
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult getDefaultInstanceForType() {
        return cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.getDefaultInstance();
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult build() {
        cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult buildPartial() {
        cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult result = new cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult(this);
        int from_bitField0_ = bitField0_;
        if (rankItemBuilder_ == null) {
          if (((bitField0_ & 0x00000001) != 0)) {
            rankItem_ = java.util.Collections.unmodifiableList(rankItem_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.rankItem_ = rankItem_;
        } else {
          result.rankItem_ = rankItemBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }

      @java.lang.Override
      public Builder setField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
        return super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(
              com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(
              com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
              com.google.protobuf.Descriptors.FieldDescriptor field,
              java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult) {
          return mergeFrom((cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult other) {
        if (other == cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.getDefaultInstance()) return this;
        if (rankItemBuilder_ == null) {
          if (!other.rankItem_.isEmpty()) {
            if (rankItem_.isEmpty()) {
              rankItem_ = other.rankItem_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureRankItemIsMutable();
              rankItem_.addAll(other.rankItem_);
            }
            onChanged();
          }
        } else {
          if (!other.rankItem_.isEmpty()) {
            if (rankItemBuilder_.isEmpty()) {
              rankItemBuilder_.dispose();
              rankItemBuilder_ = null;
              rankItem_ = other.rankItem_;
              bitField0_ = (bitField0_ & ~0x00000001);
              rankItemBuilder_ =
                      com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                              getRankItemFieldBuilder() : null;
            } else {
              rankItemBuilder_.addAllMessages(other.rankItem_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
        cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.util.List<cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem> rankItem_ =
              java.util.Collections.emptyList();

      private void ensureRankItemIsMutable() {
        if (!((bitField0_ & 0x00000001) != 0)) {
          rankItem_ = new java.util.ArrayList<cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem>(rankItem_);
          bitField0_ |= 0x00000001;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem, cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem.Builder, cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItemOrBuilder> rankItemBuilder_;

      /**
       * <pre>
       * 排名条目
       * </pre>
       *
       * <code>repeated .msg.GetRankResult.RankItem rankItem = 1;</code>
       */
      public java.util.List<cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem> getRankItemList() {
        if (rankItemBuilder_ == null) {
          return java.util.Collections.unmodifiableList(rankItem_);
        } else {
          return rankItemBuilder_.getMessageList();
        }
      }

      /**
       * <pre>
       * 排名条目
       * </pre>
       *
       * <code>repeated .msg.GetRankResult.RankItem rankItem = 1;</code>
       */
      public int getRankItemCount() {
        if (rankItemBuilder_ == null) {
          return rankItem_.size();
        } else {
          return rankItemBuilder_.getCount();
        }
      }

      /**
       * <pre>
       * 排名条目
       * </pre>
       *
       * <code>repeated .msg.GetRankResult.RankItem rankItem = 1;</code>
       */
      public cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem getRankItem(int index) {
        if (rankItemBuilder_ == null) {
          return rankItem_.get(index);
        } else {
          return rankItemBuilder_.getMessage(index);
        }
      }

      /**
       * <pre>
       * 排名条目
       * </pre>
       *
       * <code>repeated .msg.GetRankResult.RankItem rankItem = 1;</code>
       */
      public Builder setRankItem(
              int index, cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem value) {
        if (rankItemBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRankItemIsMutable();
          rankItem_.set(index, value);
          onChanged();
        } else {
          rankItemBuilder_.setMessage(index, value);
        }
        return this;
      }

      /**
       * <pre>
       * 排名条目
       * </pre>
       *
       * <code>repeated .msg.GetRankResult.RankItem rankItem = 1;</code>
       */
      public Builder setRankItem(
              int index, cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem.Builder builderForValue) {
        if (rankItemBuilder_ == null) {
          ensureRankItemIsMutable();
          rankItem_.set(index, builderForValue.build());
          onChanged();
        } else {
          rankItemBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }

      /**
       * <pre>
       * 排名条目
       * </pre>
       *
       * <code>repeated .msg.GetRankResult.RankItem rankItem = 1;</code>
       */
      public Builder addRankItem(cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem value) {
        if (rankItemBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRankItemIsMutable();
          rankItem_.add(value);
          onChanged();
        } else {
          rankItemBuilder_.addMessage(value);
        }
        return this;
      }

      /**
       * <pre>
       * 排名条目
       * </pre>
       *
       * <code>repeated .msg.GetRankResult.RankItem rankItem = 1;</code>
       */
      public Builder addRankItem(
              int index, cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem value) {
        if (rankItemBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRankItemIsMutable();
          rankItem_.add(index, value);
          onChanged();
        } else {
          rankItemBuilder_.addMessage(index, value);
        }
        return this;
      }

      /**
       * <pre>
       * 排名条目
       * </pre>
       *
       * <code>repeated .msg.GetRankResult.RankItem rankItem = 1;</code>
       */
      public Builder addRankItem(
              cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem.Builder builderForValue) {
        if (rankItemBuilder_ == null) {
          ensureRankItemIsMutable();
          rankItem_.add(builderForValue.build());
          onChanged();
        } else {
          rankItemBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }

      /**
       * <pre>
       * 排名条目
       * </pre>
       *
       * <code>repeated .msg.GetRankResult.RankItem rankItem = 1;</code>
       */
      public Builder addRankItem(
              int index, cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem.Builder builderForValue) {
        if (rankItemBuilder_ == null) {
          ensureRankItemIsMutable();
          rankItem_.add(index, builderForValue.build());
          onChanged();
        } else {
          rankItemBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }

      /**
       * <pre>
       * 排名条目
       * </pre>
       *
       * <code>repeated .msg.GetRankResult.RankItem rankItem = 1;</code>
       */
      public Builder addAllRankItem(
              java.lang.Iterable<? extends cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem> values) {
        if (rankItemBuilder_ == null) {
          ensureRankItemIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
                  values, rankItem_);
          onChanged();
        } else {
          rankItemBuilder_.addAllMessages(values);
        }
        return this;
      }

      /**
       * <pre>
       * 排名条目
       * </pre>
       *
       * <code>repeated .msg.GetRankResult.RankItem rankItem = 1;</code>
       */
      public Builder clearRankItem() {
        if (rankItemBuilder_ == null) {
          rankItem_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          rankItemBuilder_.clear();
        }
        return this;
      }

      /**
       * <pre>
       * 排名条目
       * </pre>
       *
       * <code>repeated .msg.GetRankResult.RankItem rankItem = 1;</code>
       */
      public Builder removeRankItem(int index) {
        if (rankItemBuilder_ == null) {
          ensureRankItemIsMutable();
          rankItem_.remove(index);
          onChanged();
        } else {
          rankItemBuilder_.remove(index);
        }
        return this;
      }

      /**
       * <pre>
       * 排名条目
       * </pre>
       *
       * <code>repeated .msg.GetRankResult.RankItem rankItem = 1;</code>
       */
      public cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem.Builder getRankItemBuilder(
              int index) {
        return getRankItemFieldBuilder().getBuilder(index);
      }

      /**
       * <pre>
       * 排名条目
       * </pre>
       *
       * <code>repeated .msg.GetRankResult.RankItem rankItem = 1;</code>
       */
      public cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItemOrBuilder getRankItemOrBuilder(
              int index) {
        if (rankItemBuilder_ == null) {
          return rankItem_.get(index);
        } else {
          return rankItemBuilder_.getMessageOrBuilder(index);
        }
      }

      /**
       * <pre>
       * 排名条目
       * </pre>
       *
       * <code>repeated .msg.GetRankResult.RankItem rankItem = 1;</code>
       */
      public java.util.List<? extends cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItemOrBuilder>
      getRankItemOrBuilderList() {
        if (rankItemBuilder_ != null) {
          return rankItemBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(rankItem_);
        }
      }

      /**
       * <pre>
       * 排名条目
       * </pre>
       *
       * <code>repeated .msg.GetRankResult.RankItem rankItem = 1;</code>
       */
      public cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem.Builder addRankItemBuilder() {
        return getRankItemFieldBuilder().addBuilder(
                cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem.getDefaultInstance());
      }

      /**
       * <pre>
       * 排名条目
       * </pre>
       *
       * <code>repeated .msg.GetRankResult.RankItem rankItem = 1;</code>
       */
      public cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem.Builder addRankItemBuilder(
              int index) {
        return getRankItemFieldBuilder().addBuilder(
                index, cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem.getDefaultInstance());
      }

      /**
       * <pre>
       * 排名条目
       * </pre>
       *
       * <code>repeated .msg.GetRankResult.RankItem rankItem = 1;</code>
       */
      public java.util.List<cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem.Builder>
      getRankItemBuilderList() {
        return getRankItemFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem, cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem.Builder, cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItemOrBuilder>
      getRankItemFieldBuilder() {
        if (rankItemBuilder_ == null) {
          rankItemBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
                  cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem, cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItem.Builder, cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult.RankItemOrBuilder>(
                  rankItem_,
                  ((bitField0_ & 0x00000001) != 0),
                  getParentForChildren(),
                  isClean());
          rankItem_ = null;
        }
        return rankItemBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
              final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }


      // @@protoc_insertion_point(builder_scope:msg.GetRankResult)
    }

    // @@protoc_insertion_point(class_scope:msg.GetRankResult)
    private static final cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult();
    }

    public static cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    private static final com.google.protobuf.Parser<GetRankResult>
            PARSER = new com.google.protobuf.AbstractParser<GetRankResult>() {
      @java.lang.Override
      public GetRankResult parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
        return new GetRankResult(input, extensionRegistry);
      }
    };

    public static com.google.protobuf.Parser<GetRankResult> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<GetRankResult> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public cn.lei.netty.herostory.msg.GameMsgProtocol.GetRankResult getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
          internal_static_msg_UserEntryCmd_descriptor;
  private static final
  com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internal_static_msg_UserEntryCmd_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
          internal_static_msg_UserEntryResult_descriptor;
  private static final
  com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internal_static_msg_UserEntryResult_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
          internal_static_msg_WhoElseIsHereCmd_descriptor;
  private static final
  com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internal_static_msg_WhoElseIsHereCmd_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
          internal_static_msg_WhoElseIsHereResult_descriptor;
  private static final
  com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internal_static_msg_WhoElseIsHereResult_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
          internal_static_msg_WhoElseIsHereResult_UserInfo_descriptor;
  private static final
  com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internal_static_msg_WhoElseIsHereResult_UserInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
          internal_static_msg_WhoElseIsHereResult_UserInfo_MoveState_descriptor;
  private static final
  com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internal_static_msg_WhoElseIsHereResult_UserInfo_MoveState_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
          internal_static_msg_UserMoveToCmd_descriptor;
  private static final
  com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internal_static_msg_UserMoveToCmd_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
          internal_static_msg_UserMoveToResult_descriptor;
  private static final
  com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internal_static_msg_UserMoveToResult_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
          internal_static_msg_UserQuitResult_descriptor;
  private static final
  com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internal_static_msg_UserQuitResult_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
          internal_static_msg_UserStopCmd_descriptor;
  private static final
  com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internal_static_msg_UserStopCmd_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
          internal_static_msg_UserStopResult_descriptor;
  private static final
  com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internal_static_msg_UserStopResult_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
          internal_static_msg_UserAttkCmd_descriptor;
  private static final
  com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internal_static_msg_UserAttkCmd_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
          internal_static_msg_UserAttkResult_descriptor;
  private static final
  com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internal_static_msg_UserAttkResult_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
          internal_static_msg_UserSubtractHpResult_descriptor;
  private static final
  com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internal_static_msg_UserSubtractHpResult_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
          internal_static_msg_UserDieResult_descriptor;
  private static final
  com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internal_static_msg_UserDieResult_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
          internal_static_msg_UserLoginCmd_descriptor;
  private static final
  com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internal_static_msg_UserLoginCmd_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
          internal_static_msg_UserLoginResult_descriptor;
  private static final
  com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internal_static_msg_UserLoginResult_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
          internal_static_msg_SelectHeroCmd_descriptor;
  private static final
  com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internal_static_msg_SelectHeroCmd_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
          internal_static_msg_SelectHeroResult_descriptor;
  private static final
  com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internal_static_msg_SelectHeroResult_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
          internal_static_msg_GetRankCmd_descriptor;
  private static final
  com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internal_static_msg_GetRankCmd_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
          internal_static_msg_GetRankResult_descriptor;
  private static final
  com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internal_static_msg_GetRankResult_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
          internal_static_msg_GetRankResult_RankItem_descriptor;
  private static final
  com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internal_static_msg_GetRankResult_RankItem_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
  getDescriptor() {
    return descriptor;
  }

  private static com.google.protobuf.Descriptors.FileDescriptor
          descriptor;

  static {
    java.lang.String[] descriptorData = {
            "\n\025GameMsgProtocol.proto\022\003msg\"\016\n\014UserEntr" +
                    "yCmd\"G\n\017UserEntryResult\022\016\n\006userId\030\001 \001(\r\022" +
                    "\020\n\010userName\030\002 \001(\t\022\022\n\nheroAvatar\030\003 \001(\t\"\022\n" +
                    "\020WhoElseIsHereCmd\"\261\002\n\023WhoElseIsHereResul" +
                    "t\0223\n\010userInfo\030\001 \003(\0132!.msg.WhoElseIsHereR" +
                    "esult.UserInfo\032\344\001\n\010UserInfo\022\016\n\006userId\030\001 " +
                    "\001(\r\022\020\n\010userName\030\002 \001(\t\022\022\n\nheroAvatar\030\003 \001(" +
                    "\t\022>\n\tmoveState\030\004 \001(\0132+.msg.WhoElseIsHere" +
                    "Result.UserInfo.MoveState\032b\n\tMoveState\022\020" +
                    "\n\010fromPosX\030\001 \001(\002\022\020\n\010fromPosY\030\002 \001(\002\022\016\n\006to" +
                    "PosX\030\003 \001(\002\022\016\n\006toPosY\030\004 \001(\002\022\021\n\tstartTime\030" +
                    "\005 \001(\004\"c\n\rUserMoveToCmd\022\024\n\014moveFromPosX\030\001" +
                    " \001(\002\022\024\n\014moveFromPosY\030\002 \001(\002\022\022\n\nmoveToPosX" +
                    "\030\003 \001(\002\022\022\n\nmoveToPosY\030\004 \001(\002\"\221\001\n\020UserMoveT" +
                    "oResult\022\022\n\nmoveUserId\030\001 \001(\r\022\024\n\014moveFromP" +
                    "osX\030\002 \001(\002\022\024\n\014moveFromPosY\030\003 \001(\002\022\022\n\nmoveT" +
                    "oPosX\030\004 \001(\002\022\022\n\nmoveToPosY\030\005 \001(\002\022\025\n\rmoveS" +
                    "tartTime\030\006 \001(\004\"$\n\016UserQuitResult\022\022\n\nquit" +
                    "UserId\030\001 \001(\r\"\r\n\013UserStopCmd\"L\n\016UserStopR" +
                    "esult\022\022\n\nstopUserId\030\001 \001(\r\022\022\n\nstopAtPosX\030" +
                    "\002 \001(\002\022\022\n\nstopAtPosY\030\003 \001(\002\"#\n\013UserAttkCmd" +
                    "\022\024\n\014targetUserId\030\001 \001(\r\":\n\016UserAttkResult" +
                    "\022\022\n\nattkUserId\030\001 \001(\r\022\024\n\014targetUserId\030\002 \001" +
                    "(\r\"@\n\024UserSubtractHpResult\022\024\n\014targetUser" +
                    "Id\030\001 \001(\r\022\022\n\nsubtractHp\030\002 \001(\r\"%\n\rUserDieR" +
                    "esult\022\024\n\014targetUserId\030\001 \001(\r\"2\n\014UserLogin" +
                    "Cmd\022\020\n\010userName\030\001 \001(\t\022\020\n\010password\030\002 \001(\t\"" +
                    "G\n\017UserLoginResult\022\016\n\006userId\030\001 \001(\r\022\020\n\010us" +
                    "erName\030\002 \001(\t\022\022\n\nheroAvatar\030\003 \001(\t\"#\n\rSele" +
                    "ctHeroCmd\022\022\n\nheroAvatar\030\001 \001(\t\"&\n\020SelectH" +
                    "eroResult\022\022\n\nheroAvatar\030\001 \001(\t\"\014\n\nGetRank" +
                    "Cmd\"\235\001\n\rGetRankResult\022-\n\010rankItem\030\001 \003(\0132" +
                    "\033.msg.GetRankResult.RankItem\032]\n\010RankItem" +
                    "\022\016\n\006rankId\030\001 \001(\r\022\016\n\006userId\030\002 \001(\r\022\020\n\010user" +
                    "Name\030\003 \001(\t\022\022\n\nheroAvatar\030\004 \001(\t\022\013\n\003win\030\005 " +
                    "\001(\r*\263\003\n\007MsgCode\022\022\n\016USER_ENTRY_CMD\020\000\022\025\n\021U" +
                    "SER_ENTRY_RESULT\020\001\022\030\n\024WHO_ELSE_IS_HERE_C" +
                    "MD\020\002\022\033\n\027WHO_ELSE_IS_HERE_RESULT\020\003\022\024\n\020USE" +
                    "R_MOVE_TO_CMD\020\004\022\027\n\023USER_MOVE_TO_RESULT\020\005" +
                    "\022\024\n\020USER_QUIT_RESULT\020\006\022\021\n\rUSER_STOP_CMD\020" +
                    "\007\022\024\n\020USER_STOP_RESULT\020\010\022\021\n\rUSER_ATTK_CMD" +
                    "\020\t\022\024\n\020USER_ATTK_RESULT\020\n\022\033\n\027USER_SUBTRAC" +
                    "T_HP_RESULT\020\013\022\023\n\017USER_DIE_RESULT\020\014\022\022\n\016US" +
                    "ER_LOGIN_CMD\020\r\022\025\n\021USER_LOGIN_RESULT\020\016\022\023\n" +
                    "\017SELECT_HERO_CMD\020\017\022\026\n\022SELECT_HERO_RESULT" +
                    "\020\020\022\020\n\014GET_RANK_CMD\020\021\022\023\n\017GET_RANK_RESULT\020" +
                    "\022B\034\n\032cn.lei.netty.herostory.msgb\006proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
            .internalBuildGeneratedFileFrom(descriptorData,
                    new com.google.protobuf.Descriptors.FileDescriptor[]{
                    });
    internal_static_msg_UserEntryCmd_descriptor =
            getDescriptor().getMessageTypes().get(0);
    internal_static_msg_UserEntryCmd_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_msg_UserEntryCmd_descriptor,
            new java.lang.String[]{});
    internal_static_msg_UserEntryResult_descriptor =
            getDescriptor().getMessageTypes().get(1);
    internal_static_msg_UserEntryResult_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_msg_UserEntryResult_descriptor,
            new java.lang.String[]{"UserId", "UserName", "HeroAvatar",});
    internal_static_msg_WhoElseIsHereCmd_descriptor =
            getDescriptor().getMessageTypes().get(2);
    internal_static_msg_WhoElseIsHereCmd_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_msg_WhoElseIsHereCmd_descriptor,
            new java.lang.String[]{});
    internal_static_msg_WhoElseIsHereResult_descriptor =
            getDescriptor().getMessageTypes().get(3);
    internal_static_msg_WhoElseIsHereResult_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_msg_WhoElseIsHereResult_descriptor,
            new java.lang.String[]{"UserInfo",});
    internal_static_msg_WhoElseIsHereResult_UserInfo_descriptor =
            internal_static_msg_WhoElseIsHereResult_descriptor.getNestedTypes().get(0);
    internal_static_msg_WhoElseIsHereResult_UserInfo_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_msg_WhoElseIsHereResult_UserInfo_descriptor,
            new java.lang.String[]{"UserId", "UserName", "HeroAvatar", "MoveState",});
    internal_static_msg_WhoElseIsHereResult_UserInfo_MoveState_descriptor =
            internal_static_msg_WhoElseIsHereResult_UserInfo_descriptor.getNestedTypes().get(0);
    internal_static_msg_WhoElseIsHereResult_UserInfo_MoveState_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_msg_WhoElseIsHereResult_UserInfo_MoveState_descriptor,
            new java.lang.String[]{"FromPosX", "FromPosY", "ToPosX", "ToPosY", "StartTime",});
    internal_static_msg_UserMoveToCmd_descriptor =
            getDescriptor().getMessageTypes().get(4);
    internal_static_msg_UserMoveToCmd_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_msg_UserMoveToCmd_descriptor,
            new java.lang.String[]{"MoveFromPosX", "MoveFromPosY", "MoveToPosX", "MoveToPosY",});
    internal_static_msg_UserMoveToResult_descriptor =
            getDescriptor().getMessageTypes().get(5);
    internal_static_msg_UserMoveToResult_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_msg_UserMoveToResult_descriptor,
            new java.lang.String[]{"MoveUserId", "MoveFromPosX", "MoveFromPosY", "MoveToPosX", "MoveToPosY", "MoveStartTime",});
    internal_static_msg_UserQuitResult_descriptor =
            getDescriptor().getMessageTypes().get(6);
    internal_static_msg_UserQuitResult_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_msg_UserQuitResult_descriptor,
            new java.lang.String[]{"QuitUserId",});
    internal_static_msg_UserStopCmd_descriptor =
            getDescriptor().getMessageTypes().get(7);
    internal_static_msg_UserStopCmd_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_msg_UserStopCmd_descriptor,
            new java.lang.String[]{});
    internal_static_msg_UserStopResult_descriptor =
            getDescriptor().getMessageTypes().get(8);
    internal_static_msg_UserStopResult_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_msg_UserStopResult_descriptor,
            new java.lang.String[]{"StopUserId", "StopAtPosX", "StopAtPosY",});
    internal_static_msg_UserAttkCmd_descriptor =
            getDescriptor().getMessageTypes().get(9);
    internal_static_msg_UserAttkCmd_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_msg_UserAttkCmd_descriptor,
            new java.lang.String[]{"TargetUserId",});
    internal_static_msg_UserAttkResult_descriptor =
            getDescriptor().getMessageTypes().get(10);
    internal_static_msg_UserAttkResult_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_msg_UserAttkResult_descriptor,
            new java.lang.String[]{"AttkUserId", "TargetUserId",});
    internal_static_msg_UserSubtractHpResult_descriptor =
            getDescriptor().getMessageTypes().get(11);
    internal_static_msg_UserSubtractHpResult_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_msg_UserSubtractHpResult_descriptor,
            new java.lang.String[]{"TargetUserId", "SubtractHp",});
    internal_static_msg_UserDieResult_descriptor =
            getDescriptor().getMessageTypes().get(12);
    internal_static_msg_UserDieResult_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_msg_UserDieResult_descriptor,
            new java.lang.String[]{"TargetUserId",});
    internal_static_msg_UserLoginCmd_descriptor =
            getDescriptor().getMessageTypes().get(13);
    internal_static_msg_UserLoginCmd_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_msg_UserLoginCmd_descriptor,
            new java.lang.String[]{"UserName", "Password",});
    internal_static_msg_UserLoginResult_descriptor =
            getDescriptor().getMessageTypes().get(14);
    internal_static_msg_UserLoginResult_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_msg_UserLoginResult_descriptor,
            new java.lang.String[]{"UserId", "UserName", "HeroAvatar",});
    internal_static_msg_SelectHeroCmd_descriptor =
            getDescriptor().getMessageTypes().get(15);
    internal_static_msg_SelectHeroCmd_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_msg_SelectHeroCmd_descriptor,
            new java.lang.String[]{"HeroAvatar",});
    internal_static_msg_SelectHeroResult_descriptor =
            getDescriptor().getMessageTypes().get(16);
    internal_static_msg_SelectHeroResult_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_msg_SelectHeroResult_descriptor,
            new java.lang.String[]{"HeroAvatar",});
    internal_static_msg_GetRankCmd_descriptor =
            getDescriptor().getMessageTypes().get(17);
    internal_static_msg_GetRankCmd_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_msg_GetRankCmd_descriptor,
            new java.lang.String[]{});
    internal_static_msg_GetRankResult_descriptor =
            getDescriptor().getMessageTypes().get(18);
    internal_static_msg_GetRankResult_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_msg_GetRankResult_descriptor,
            new java.lang.String[]{"RankItem",});
    internal_static_msg_GetRankResult_RankItem_descriptor =
            internal_static_msg_GetRankResult_descriptor.getNestedTypes().get(0);
    internal_static_msg_GetRankResult_RankItem_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_msg_GetRankResult_RankItem_descriptor,
            new java.lang.String[]{"RankId", "UserId", "UserName", "HeroAvatar", "Win",});
  }

  // @@protoc_insertion_point(outer_class_scope)

}